add & delet activite

This commit is contained in:
trochas
2026-01-09 19:16:59 +01:00
parent 8ea47c5ca1
commit f8866efc13
3 changed files with 47 additions and 3 deletions

View File

@@ -71,7 +71,7 @@ export const sessionService = {
delete: (id: number | string) => api.delete(`/session/delete/${id}`),
update: (id: number | string, data: any) => api.put(`/session/update/${id}`, data),
getActivities: (sessionId: number | string) => api.get(`/session/${sessionId}/activities`),
getActivities: (sessionId: number | string) => api.get<ActiviteDTO[]>(`/session/${sessionId}/activities`),
addActivity: (sessionId: number | string, activity: any) => api.post(`/session/${sessionId}/activities`, activity),
subscribe: (sessionId: number | string, userId: number | string) => api.post(`/session/${sessionId}/subscribe`, { userId }),
unsubscribe: (sessionId: number | string, userId: number | string) => api.post(`/session/${sessionId}/unsubscribe`, { userId }),

View File

@@ -4,7 +4,7 @@ import { dateToString, hoursToString } from "../edt";
import { Modal } from "../Modal";
import CreateActivite from "../createActivite";
import Loading from "../loading";
import { delay } from "../../requetes";
import { addActiviteToSession, delay, deletActiviteFromSession, getSessionOfActivite } from "../../requetes";
type Props = {
session:Session;
@@ -22,6 +22,7 @@ function DetailSession({session,open,setOpen}:Props){
function handleDeleteActivite(activite:Activite): void {
session.activites.splice(session.activites.indexOf(activite), 1);
deletActiviteFromSession(activite);
setActivites([...session.activites])
}
@@ -31,8 +32,12 @@ function DetailSession({session,open,setOpen}:Props){
async function updateActivites(){
//TODO
await delay(2000);
//await delay(2000);
//await updateActivitiesOfSessionAPI(session);
const newActivites = await getSessionOfActivite(session);
if(newActivites!=null){
session.activites=newActivites;
}
setLoading(false);
}
@@ -47,6 +52,7 @@ function DetailSession({session,open,setOpen}:Props){
function returnActivite(activite: Activite|null){
if(activite!==null){
addActiviteToSession(session,activite);
session.activites.push(activite);
setActivites([...session.activites])
}

View File

@@ -66,6 +66,44 @@ export async function loginOrRegister(keycloak:Keycloak): Promise<User|null>{
}
}
export async function getSessionOfActivite(session:Session):Promise<Activite[]|null>{
try {
if(session.id !=null){
const activites:Activite[] = [];
const response = await sessionService.getActivities(session.id!);
response.data.forEach(activiteDTO => {
activites.push(new Activite(activiteDTO));
});
return activites;
}
return null;
} catch (error) {
console.error("Error getting session:", error);
return null;
}
}
export async function deletActiviteFromSession(activite:Activite){
try {
if(activite.id !=null){
activiteService.delete(activite.id);
}
} catch (error) {
console.error("Error getting session:", error);
}
}
export async function addActiviteToSession(session:Session,activite:Activite){
try {
if(activite.id !=null && session.id !=null){
sessionService.addActivity(session.id,activite.id)
}
} catch (error) {
console.error("Error getting session:", error);
}
}
export async function updateActivitiesOfSessionAPI(session:Session){
try {
const session_id = session.id