1
0
forked from PGL/Clyde
Clyde/frontend/src/rest/Users.js

145 lines
3.0 KiB
JavaScript
Raw Normal View History

2024-03-05 13:18:57 +01:00
import { restGet, restPost } from './restConsumer.js'
import { getCookie, setCookie } from '@/utils.js'
2024-03-05 13:18:57 +01:00
export async function login(user, pass, exp){
return restPost("/login", {identifier: user, password: pass, expirationDate: exp});
2024-03-05 14:58:56 +01:00
}
export function isLogged(){
return getCookie("session_token") != ""
}
export function disconnect(){
setCookie("session_token", ";expires= Thu, 01 Jan 1970 00:00:01 GMT")
}
/**
* Register a user (tokenless)
*
* @param firstname
* @param lastname
* @param birthdate
* @param password
* @param mail
* @param address
* @param country
* @param curriculum
* @param imageId id of the image in database returned when uploaded
*/
export async function register(firstname, lastname, birthDate, password, email, address, country, curriculum, imageId){
return restPost("/register", {
firstname: firstname,
lastname: lastname,
birthDate: birthDate,
password: password,
email: email,
address: address,
country: country,
curriculum: curriculum
});
}
/**
* Register a user (by secretary)
*
* @param firstname
* @param lastname
* @param birthdate
* @param password
* @param mail
* @param address
* @param country
* @param imageId id of the image in database returned when uploaded
*
* PS: the password is not is not required as it is generated by the backend and sent to the user
* by mail. it's up to the user to change it if he cares about security
*/
export async function createUser(firstname, lastname, birthDate, email, address, country, role, imageId){
return restPost("/user", {
firstname: firstname,
lastname: lastname,
birthDate: birthDate,
password: password,
email: email,
address: address,
country: country,
});
2024-03-05 13:18:57 +01:00
}
2024-03-06 14:08:39 +01:00
/**
* get informations on a specific user.
* Leaving the id empty will return the user's value based on his token
* if the user is not authenticated. then an empty array should be returned
*/
export async function getUser(id){
const endpoint = "/user" + id != null ? "/" + id : "";
return restGet(endpoint);
}
/**
* Alterable datas of user.
* usage by secretary
*
* @param id regno of the user
* @param data data to change
*
* - lastName
* - firstName
* - birthDate
* - role
* - email
* - photo
* - Adress
*/
export async function alterUser(id, data){
return restPatch("/user/" + id, data);
}
2024-03-06 14:08:39 +01:00
/**
* Reserved for secretary roles. Allow to list all user on the plateform
*/
export async function getAllUsers(){
return restGet("/users");
}
/**
* Return the list of teachers
*
* @return a list of teachers
* each elements is of the form
* - id
* - name
* - role
*/
export async function getTeachers(){
return restGet("/users/teacher")
}
2024-03-16 14:31:44 +01:00
export async function getStudents(){
return restGet("/users/student")
}
/**
* Get informations about yourself
* - RegNo
* - FirstName / LastName
* - email
* - adressId (?)
* - birthDate
* - role
*/
export async function getSelf(){
return restGet("/user");
}
/**
* Alterable datas are
* - email
* - photo
* - Adress
* - Password
*/
export async function alterSelf(data){
return restPatch("/user", data);
}