add & delet activite
This commit is contained in:
@@ -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 }),
|
||||
|
||||
@@ -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])
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user