Cosmos-Server/client/src/api/wrap.js

41 lines
744 B
JavaScript
Raw Normal View History

2023-03-13 21:06:19 +00:00
let snackit;
2023-06-20 17:34:06 +00:00
export default function wrap(apicall, noError = false) {
2023-03-13 21:06:19 +00:00
return apicall.then(async (response) => {
2023-03-25 20:15:00 +00:00
let rep;
try {
rep = await response.json();
2023-06-20 17:34:06 +00:00
} catch (err) {
if (!noError) {
snackit('Server error');
throw new Error('Server error');
} else {
const e = new Error(rep.message);
e.status = rep.status;
e.code = rep.code;
throw e;
}
2023-03-25 20:15:00 +00:00
}
2023-06-20 17:34:06 +00:00
2023-03-13 21:06:19 +00:00
if (response.status == 200) {
return rep;
}
2023-06-20 17:34:06 +00:00
if (!noError) {
snackit(rep.message);
}
2023-03-29 20:38:50 +00:00
const e = new Error(rep.message);
2023-06-20 17:34:06 +00:00
e.status = rep.status;
2023-05-07 16:47:20 +00:00
e.code = rep.code;
2023-03-29 20:38:50 +00:00
throw e;
2023-03-13 21:06:19 +00:00
});
}
export function setSnackit(snack) {
snackit = snack;
2023-04-28 18:28:01 +00:00
}
export {
snackit
};