Base for rest api utilisation
The restConsumer will be the base, then I will create a js file per "object" (for instance there will be users.js with all endpoints for users using the restConsumer.js)
This commit is contained in:
		@ -9,6 +9,8 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import { getCookie } from './utils.js';
 | 
			
		||||
 | 
			
		||||
const default_lang = "EN";
 | 
			
		||||
let langs;
 | 
			
		||||
 | 
			
		||||
@ -44,22 +46,6 @@ export default i18n;
 | 
			
		||||
// Those functions are utility functions use by previous exported functions.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Return the content of a cookie with specified key
 | 
			
		||||
 * @param key cookie name
 | 
			
		||||
 */
 | 
			
		||||
function getCookie(key){
 | 
			
		||||
	key = key + "="
 | 
			
		||||
	let cookies = decodeURIComponent(document.cookie).split(";");
 | 
			
		||||
	for (let el of cookies) {
 | 
			
		||||
		el = el.trimStart();
 | 
			
		||||
		if(el.indexOf(key) == 0){
 | 
			
		||||
			return el.substr(key.length, el.length);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return "";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Function that load the file with translation from the specified lang and return a dictionnary
 | 
			
		||||
 * @param select the language to load. could be null to fetch the cookies for an answer
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								frontend/src/rest/restConsumer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								frontend/src/rest/restConsumer.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
import { getCookie } from './utils.js'
 | 
			
		||||
 | 
			
		||||
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", body: data});
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function restDelete(endPoint, data) {
 | 
			
		||||
	return await _rest(endPoint, {method: "POST", body: data});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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});
 | 
			
		||||
	config['headers'] = headers;
 | 
			
		||||
	return fetch(restURL + endPoint, config).then( e => e.json());
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								frontend/src/utils.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								frontend/src/utils.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Return the content of a cookie with specified key
 | 
			
		||||
 * @param key cookie name
 | 
			
		||||
 */
 | 
			
		||||
function getCookie(key){
 | 
			
		||||
	key = key + "="
 | 
			
		||||
	let cookies = decodeURIComponent(document.cookie).split(";");
 | 
			
		||||
	for (let el of cookies) {
 | 
			
		||||
		el = el.trimStart();
 | 
			
		||||
		if(el.indexOf(key) == 0){
 | 
			
		||||
			return el.substr(key.length, el.length);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return "";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export {getCookie};
 | 
			
		||||
		Reference in New Issue
	
	Block a user