diff --git a/front_end/src/classes.tsx b/front_end/src/classes.tsx index a22ad88..365dda1 100644 --- a/front_end/src/classes.tsx +++ b/front_end/src/classes.tsx @@ -4,6 +4,7 @@ export type Role = "Admin" | "Athlete" | "Coach"; export class User{ id!: number; nom!: String; + prenom!:String; sessions: Session[] = []; //nb: Admin liaison non symétrique /!\ email!: String; role!: Role; diff --git a/front_end/src/components/login.tsx b/front_end/src/components/login.tsx index 97b4465..aef8447 100644 --- a/front_end/src/components/login.tsx +++ b/front_end/src/components/login.tsx @@ -8,11 +8,31 @@ import { useLocalData } from '../context/useLocalData'; export const Login =() =>{ const {user,setUser} = useLocalData() + const { keycloak } = useKeycloak(); + useEffect(() => { + if (keycloak.authenticated) { + fetch("http://localhost:8080/api/athlete/create", { + method: "POST", + headers: { + Authorization: `Bearer ${keycloak.token}`, + }, + }); + } + }, [keycloak.authenticated]); - - useEffect(() => { //TODO à supprimer - setUser(getUserTest()) - },[]); + useEffect(() => { + if (keycloak.authenticated) { + const tokenParsed = keycloak.tokenParsed; + setUser({ + id: tokenParsed?.id, + email: tokenParsed?.email, + nom: tokenParsed?.family_name, + prenom: tokenParsed?.given_name, + role: "Athlete", + sessions: [] + }); + } + }, [keycloak.authenticated]); function handleLogin(): void { @@ -24,8 +44,6 @@ export const Login =() =>{ keycloak.logout() setUser(new User()); } - - const { keycloak } = useKeycloak() return(