1
0
forked from PGL/Clyde
Clyde/frontend/src/rest/Users.js
Anthony Debucquoy 198ee8a4ce Register API and form optimization [depend: backend /register] (#93)
Made the register api following the backend

refactored the register form for more ergonomy

**PS: Waiting for the backend to catch up**

Reviewed-on: PGL/Clyde#93
Reviewed-by: Maxime <231026@umons.ac.be>
Reviewed-by: Wal <karpinskiwal@gmail.com>
Reviewed-by: LeoMoulin <leomoulin125@gmail.com>
Co-authored-by: Anthony Debucquoy <debucquoy.anthony@gmail.com>
Co-committed-by: Anthony Debucquoy <debucquoy.anthony@gmail.com>
2024-03-15 14:46:39 +01:00

120 lines
2.5 KiB
JavaScript

import { restGet, restPost } from './restConsumer.js'
export async function login(user, pass, exp){
return restPost("/login", {identifier: user, password: pass, expirationDate: exp});
}
/**
* Register a user (tokenless)
*
* @param firstname
* @param lastname
* @param birthdate
* @param password
* @param mail
* @param address
* @param country
* @param cursus
* @param imageId id of the image in database returned when uploaded
*/
export async function register(firstname, lastname, birthDate, password, email, address, country, cursus, imageId){
return restPost("/register", {
firstname: firstname,
lastname: lastname,
birthDate: birthDate,
password: password,
email: email,
address: address,
country: country,
cursus: cursus
});
}
/**
* 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,
});
}
/**
* 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);
}
/**
* Reserved for secretary roles. Allow to list all user on the plateform
*/
export async function getAllUsers(){
return restGet("/users");
}
/**
* 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);
}