import req from './../../fetch'; import { undocumentedResponse } from './../../utils'; import { AllAPIResponses, UserType, CarbonError } from './../../index'; type PostBody = { password: string; username: string }; export const post = async ( body: PostBody, headers?: Headers ): Promise> => { try { const resp = await req.post(`/api/login`, JSON.stringify(body), headers); const clone = resp.clone(); switch (resp.status) { case 200: return { data: (await resp.json()) as UserType, response: clone, }; case 400: case 401: case 404: case 500: return { error: (await resp.json()) as CarbonError, response: clone, }; default: return { error: new Error(undocumentedResponse(resp)), response: clone, }; } } catch (e) { return e; } }; export default post;