Debucquoy Anthony
1502cc871c
All checks were successful
Build and test backend / Build-backend (push) Successful in 2m13s
deploy to production / deploy-backend (push) Successful in 2m21s
Build and test FrontEnd / Build-frontend (push) Successful in 24s
Build and test backend / Test-backend (push) Successful in 1m24s
deploy to production / deploy-frontend (push) Successful in 26s
Reviewed-on: #102 Reviewed-by: LeoMoulin <leomoulin125@gmail.com> Reviewed-by: Wal <karpinskiwal@gmail.com> Reviewed-by: Maxime <231026@umons.ac.be>
55 lines
2.0 KiB
JavaScript
55 lines
2.0 KiB
JavaScript
import { getCookie } from '../utils.js'
|
|
import { toast } from 'vue3-toastify'
|
|
|
|
const restURL = import.meta.env.PROD ? "https://clyde.herisson.ovh/api" : "http://localhost:8080"
|
|
|
|
export async function restGet(endPoint) {
|
|
return await _rest(endPoint, {method: "GET"});
|
|
}
|
|
|
|
export async function restPost(endPoint, data) {
|
|
return await _rest(endPoint, {method: "POST", credentials: 'include', body: JSON.stringify(data)});
|
|
}
|
|
|
|
export async function restPostFile(endPoint, file){
|
|
let headers = new Headers();
|
|
return await _rest(endPoint, {method: "POST", credentials: 'include', body: file, headers: headers });
|
|
}
|
|
|
|
export async function restDelete(endPoint, data) {
|
|
return await _rest(endPoint, {method: "DELETE", credentials: 'include', body: JSON.stringify(data)});
|
|
}
|
|
|
|
export async function restPatch(endPoint, data) {
|
|
return await _rest(endPoint, {method: "PATCH", credentials: 'include', body: JSON.stringify(data)});
|
|
}
|
|
|
|
/**
|
|
* backbone for the request made by the frontend
|
|
*
|
|
* specification
|
|
* - If the user has "session_token" cookie set, it will use it in the authorization field of the http request
|
|
* - The result will be returned as a json to access fields easily ( the backend should send json response )
|
|
*
|
|
* @Example _rest("/ping", {user: data}) -> {id:0, txt:"pong"}
|
|
*/
|
|
async function _rest(endPoint, config){
|
|
endPoint.at(0) != "/" ? console.error("Carefull, you certainly should put a / at the begenning of your endPoint ") : true;
|
|
let session_token = getCookie("session_token");
|
|
let headers = new Headers({
|
|
'Authorization': session_token,
|
|
'Content-Type': 'application/json',
|
|
});
|
|
config['headers'] = config['headers'] == null ? headers : config['headers'];
|
|
return toast.promise(fetch(restURL + endPoint, config),
|
|
{
|
|
pending: config['pending'] != null ? config['pending'] : 'pending',
|
|
error: config['error'] != null ? config['error'] : 'Network Failure...',
|
|
success: config['success'] != null ? config['success'] : {render(res){
|
|
console.log(res);
|
|
return res.data.ok ? "Success" : "error";
|
|
}},
|
|
})
|
|
.then( e => e.json()).catch( e => e );
|
|
}
|