Ajout register + quelques options #63
@ -9,6 +9,8 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { getCookie } from './utils.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const default_lang = "EN";
 | 
					const default_lang = "EN";
 | 
				
			||||||
let langs;
 | 
					let langs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -36,22 +38,6 @@ export default function i18n(key, options) {
 | 
				
			|||||||
// Those functions are utility functions use by previous exported functions.
 | 
					// 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
 | 
					 * 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
 | 
					 * @param select the language to load. could be null to fetch the cookies for an answer
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
import './assets/main.css'
 | 
					import './assets/main.css'
 | 
				
			||||||
 | 
					import 'vue3-toastify/dist/index.css';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { createApp } from 'vue'
 | 
					import { createApp } from 'vue'
 | 
				
			||||||
import App from './Login.vue'
 | 
					import App from './Login.vue'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										45
									
								
								frontend/src/rest/restConsumer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								frontend/src/rest/restConsumer.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					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", body: data});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export async function restDelete(endPoint, data) {
 | 
				
			||||||
 | 
						return await _rest(endPoint, {method: "DELETE", body: data});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export async function restPatch(endPoint, data) {
 | 
				
			||||||
 | 
						return await _rest(endPoint, {method: "PATCH", body: 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});
 | 
				
			||||||
 | 
						config['headers'] = 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){
 | 
				
			||||||
 | 
									return res.ok ? "Success" : "error";
 | 
				
			||||||
 | 
								}},
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							.then( e => e.json()).catch( e => e );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										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