SAE-A2-TruthInquiry/truthinquiry/static/js/api.js
2023-01-16 14:36:49 +01:00

33 lines
1.3 KiB
JavaScript

async function makeAPIRequest(endpoint, body) {
return new Promise((resolve, reject) => {
const fetchOptions = {
method: "POST",
body: new URLSearchParams(body)
};
fetch("/api/v1/" + endpoint, fetchOptions).then(response => {
const responseCode = response.status;
console.log(responseCode);
if (responseCode >= 500) {
reject("Error " + responseCode + " when fetching " + endpoint);
alert("Une réponse invalide du serveur a été obtenue, veuillez réessayer ultérieurement.");
return;
}
response.json().then(jsonResponse => {
if (jsonResponse["error"] === 0) {
resolve(jsonResponse);
} else {
const message = jsonResponse["msg"];
alert("Erreur du serveur : " + message);
reject(endpoint + ": " + message);
}
});
}).catch((e) => {
console.error("Failed to fetch API", e);
alert("Une erreur est survenue lors de la connexion au serveur, veuillez vérifier votre connexion et / ou réessayer ultérieurement.");
reject(endpoint);
});
});
}