import req from './../../fetch'; import { undocumentedResponse, paramsToString } from './../../utils'; import { AllAPIResponses, CarbonError, UserType } from './../../index'; type Params = { detail?: boolean; limit?: number; offset?: number; }; const get = async ( params: Params, headers?: Headers ): Promise> => { try { const resp = await req.get(`/api/users${paramsToString(params)}`, headers); const clone = resp.clone(); switch (resp.status) { case 200: const data = (await resp.json()) as UserType[]; return { data, 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 { error: e, response: undefined }; } }; export default get;