diff --git a/backend/cdn/0b6b478c-9b05-4190-a7f3-c6414135c236.jpg b/backend/cdn/0b6b478c-9b05-4190-a7f3-c6414135c236.jpg new file mode 100644 index 0000000..d8e38c9 Binary files /dev/null and b/backend/cdn/0b6b478c-9b05-4190-a7f3-c6414135c236.jpg differ diff --git a/backend/cdn/10217f04-10cf-412f-87d7-aa427bfe0de5.jpg b/backend/cdn/10217f04-10cf-412f-87d7-aa427bfe0de5.jpg new file mode 100644 index 0000000..d8e38c9 Binary files /dev/null and b/backend/cdn/10217f04-10cf-412f-87d7-aa427bfe0de5.jpg differ diff --git a/backend/cdn/2a18cb2c-a675-4f54-a25b-e6099547d24d.jpg b/backend/cdn/2a18cb2c-a675-4f54-a25b-e6099547d24d.jpg new file mode 100644 index 0000000..d8e38c9 Binary files /dev/null and b/backend/cdn/2a18cb2c-a675-4f54-a25b-e6099547d24d.jpg differ diff --git a/backend/cdn/3af9e590-794a-401f-8dce-97437ee4a2eb.jpg b/backend/cdn/3af9e590-794a-401f-8dce-97437ee4a2eb.jpg new file mode 100644 index 0000000..d8e38c9 Binary files /dev/null and b/backend/cdn/3af9e590-794a-401f-8dce-97437ee4a2eb.jpg differ diff --git a/backend/cdn/8f4e3a22-1261-4afd-b226-c00bd74f02ed.jpg b/backend/cdn/8f4e3a22-1261-4afd-b226-c00bd74f02ed.jpg new file mode 100644 index 0000000..d8e38c9 Binary files /dev/null and b/backend/cdn/8f4e3a22-1261-4afd-b226-c00bd74f02ed.jpg differ diff --git a/backend/cdn/912f2a1e-d331-4fc6-9cc5-c5ef2f1d8e9d.jpg b/backend/cdn/912f2a1e-d331-4fc6-9cc5-c5ef2f1d8e9d.jpg new file mode 100644 index 0000000..d8e38c9 Binary files /dev/null and b/backend/cdn/912f2a1e-d331-4fc6-9cc5-c5ef2f1d8e9d.jpg differ diff --git a/backend/cdn/fa7deac8-a4db-4f1a-8b2e-0f1388c81045.jpg b/backend/cdn/fa7deac8-a4db-4f1a-8b2e-0f1388c81045.jpg new file mode 100644 index 0000000..d8e38c9 Binary files /dev/null and b/backend/cdn/fa7deac8-a4db-4f1a-8b2e-0f1388c81045.jpg differ diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/InscriptionController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/InscriptionController.java index 6c71fd3..4da0c71 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/InscriptionController.java +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/InscriptionController.java @@ -63,7 +63,7 @@ public class InscriptionController { @RequestHeader("Authorization") String token, @RequestBody RequestState requestState) { - + System.out.println(requestState); if (authServ.isNotIn(new Role[]{Role.InscriptionService,Role.Admin},token)) return new UnauthorizedResponse<>(null); diff --git a/frontend/src/Apps/Inscription.vue b/frontend/src/Apps/Inscription.vue index 5acec82..216c348 100644 --- a/frontend/src/Apps/Inscription.vue +++ b/frontend/src/Apps/Inscription.vue @@ -1,6 +1,5 @@ <script setup> import i18n from "@/i18n.js" - import Req from "./Request.vue" import {validateRegister, getAllRegisters } from '@/rest/ServiceInscription.js' const requests_example = await getAllRegisters(); @@ -18,8 +17,8 @@ <div class="surname"><a>{{item.lastName}}</a></div> <div class="firstname"><a>{{item.firstName}}</a></div> <div class="infos"><button style="background-color:rgb(105,05,105);" >{{i18n("request.moreInfos")}}</button></div> - <div class="accept"><button @click="validateRegister(id,Accepted)" style="background-color:rgb(0,105,50);">{{i18n("request.accept")}}</button></div> - <div class="refuse"><button @click="validateRegister(id,Refused)" style="background-color:rgb(105,0,0);">{{i18n("request.refuse")}}</button></div> + <div class="accept"><button @click="validateRegister(item.id,'Accepted')" style="background-color:rgb(0,105,50);">{{i18n("request.accept")}}</button></div> + <div class="refuse"><button @click="validateRegister(item.id,Refused)" style="background-color:rgb(105,0,0);">{{i18n("request.refuse")}}</button></div> </div> </div> </div> diff --git a/frontend/src/Apps/Login.vue b/frontend/src/Apps/Login.vue index 68214e1..f59ff09 100644 --- a/frontend/src/Apps/Login.vue +++ b/frontend/src/Apps/Login.vue @@ -1,5 +1,5 @@ <script setup> - import { ref } from 'vue' + import {reactive, ref } from 'vue' import i18n from '@/i18n.js' import { login , register , disconnect, isLogged} from '@/rest/Users.js' import { getAllCurriculums } from '@/rest/curriculum.js' @@ -10,17 +10,20 @@ const loginPage= ref(true) const page = ref(0) + + const outputs = reactive({ + surname:null, + firstname:null, + password:null, + birthday:null, + email:null, + address:null, + country:null, + curriculum:null, + }) const submitValue= ref(i18n("login.guest.submit")) - const surname=ref("") - const firstname=ref("") - const password=ref("") const passwordConfirm=ref("") - const birthday=ref("") - const email=ref("") - const address=ref("") - const country=ref("") - let curriculum; const imageSaved = ref(false) const ppData = ref(false) @@ -32,8 +35,9 @@ window.location.href="#/home"; }, "500"); } - function verifyInputs(){ - if(password.value==passwordConfirm.value){ + function verifyInputs(pass){ + console.log(pass) + if(pass==passwordConfirm.value){ page.value++; return toast('Password and Confirm Password are correct.', { @@ -56,17 +60,17 @@ <div class='loginBox'> <div v-if="loginPage"> - <form @submit.prevent=" login(email,password);goBackHome();"class="form"> + <form @submit.prevent=" login(outputs.email,outputs.password);goBackHome();"class="form"> <h1 style="color:rgb(239,60,168); font-family: sans-serif;"> {{i18n("login.guest.signin")}} </h1> <div class="inputBox"> <p>ID / {{i18n("login.guest.email")}}</p> - <input type="text" v-model="email"> + <input type="text" v-model="outputs.email"> </div> <div class="inputBox"> <p>{{i18n("login.guest.password")}}</p> - <input type="password" v-model="password"> + <input type="password" v-model="outputs.password"> </div> <div class="register"> <a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a> @@ -85,19 +89,19 @@ <div v-if="page === 0"> <div class="inputBox"> <p>{{i18n("login.guest.surname")}}</p> - <input type="text" v-model="surname"> + <input type="text" v-model="outputs.surname"> </div> <div class="inputBox"> <p>{{i18n("login.guest.firstname")}}</p> - <input type="text" v-model="firstname"> + <input type="text" v-model="outputs.firstname"> </div> <div class="inputBox"> <p>{{i18n("login.guest.birthday")}}</p> - <input type="date" v-model="birthday"> + <input type="date" v-model="outputs.birthday"> </div> <div class="inputBox"> <p>{{i18n("login.guest.password")}}</p> - <input type="password" v-model="password"> + <input type="password" v-model="outputs.password"> </div> <div class="inputBox"> <p>{{i18n("login.guest.confirm")}} {{i18n("login.guest.password")}}</p> @@ -105,7 +109,7 @@ </div> <div class="switchpage"> - <button @click="verifyInputs();">{{i18n("login.guest.nextpage")}}</button> + <button @click="verifyInputs(outputs.password);">{{i18n("login.guest.nextpage")}}</button> </div> <div @click="(loginPage=!loginPage) && (page=0)" class="register"> @@ -115,15 +119,15 @@ <div v-else> <div class="inputBox"> <p>{{i18n("login.guest.email")}}</p> - <input type="mail" v-model="email"> + <input type="mail" v-model="outputs.email"> </div> <div class="inputBox"> <p>{{i18n("login.guest.address")}}</p> - <input type="text" v-model="address"> + <input type="text" v-model="outputs.address"> </div> <div class="inputBox"> <p>{{i18n("login.guest.country")}}</p> - <input type="text" v-model="country"> + <input type="text" v-model="outputs.country"> </div> <form novalidate enctype="multipart/form-data" class="inputBox"> <p>{{i18n("profile.picture").toUpperCase()}}</p> @@ -131,13 +135,13 @@ </form> <div class="inputBox"> <p>{{i18n("Curriculum").toUpperCase()}}</p> - <select v-model="curriculum"> + <select v-model="outputs.curriculum"> <option v-for="item in curricula">{{item.curriculumId}}</option> </select> </div> <div style="align-self:center;" class="inputBox"> - <button style="margin-top:25px;" @click="console.log(curriculum);register(firstname, surname, birthday, password, mail, address, country, curriculum);"> + <button style="margin-top:25px;" @click="console.log(outputs);register(outputs.firstname, outputs.surname, outputs.birthday, outputs.password, outputs.email, outputs.address, outputs.country, outputs.curriculum, ppData);"> {{i18n("login.guest.submit")}} </button> </div> diff --git a/frontend/src/rest/ServiceInscription.js b/frontend/src/rest/ServiceInscription.js index c989911..404f1ac 100644 --- a/frontend/src/rest/ServiceInscription.js +++ b/frontend/src/rest/ServiceInscription.js @@ -3,7 +3,7 @@ * * TODO: On time of writing, the backend doesn't support these endpoints so it could be modified in the future. */ -import {restGet, restPatch} from './restConsumer.js' +import {restGet, restPatch,restPatchInfo} from './restConsumer.js' /** * create a new register requests that can be recovered by the registering service @@ -41,5 +41,5 @@ export async function getAllRegisters(){ * Change the state of a requests. */ export async function validateRegister(id, state){ - return restPatch("/request/register/" + id, {state: state}); + return restPatch("/request/register/" + id, state); } diff --git a/frontend/src/rest/Users.js b/frontend/src/rest/Users.js index 7446c61..aa7f439 100644 --- a/frontend/src/rest/Users.js +++ b/frontend/src/rest/Users.js @@ -28,14 +28,15 @@ export function disconnect(){ */ export async function register(firstname, lastname, birthDate, password, email, address, country, curriculumId, imageId){ return restPost("/register", { - firstname: firstname, - lastname: lastname, + firstName: firstname, + lastName: lastname, birthDate: birthDate, password: password, email: email, address: address, country: country, - curriculumId: curriculumId + curriculumId: curriculumId, + profilePictureUrl: imageId, }); } diff --git a/frontend/src/rest/restConsumer.js b/frontend/src/rest/restConsumer.js index 9680ac8..96d47a3 100644 --- a/frontend/src/rest/restConsumer.js +++ b/frontend/src/rest/restConsumer.js @@ -11,6 +11,7 @@ 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 }); @@ -24,6 +25,10 @@ export async function restPatch(endPoint, data) { return await _rest(endPoint, {method: "PATCH", credentials: 'include', body: JSON.stringify(data)}); } +export async function restPatchInfo(endPoint, data){ + return await _rest(endPoint, {method: "PATCH", credentials: 'include', body: data}); +} + /** * backbone for the request made by the frontend *