add & delet activite
This commit is contained in:
@@ -71,7 +71,7 @@ export const sessionService = {
|
|||||||
delete: (id: number | string) => api.delete(`/session/delete/${id}`),
|
delete: (id: number | string) => api.delete(`/session/delete/${id}`),
|
||||||
update: (id: number | string, data: any) => api.put(`/session/update/${id}`, data),
|
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),
|
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 }),
|
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 }),
|
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 { Modal } from "../Modal";
|
||||||
import CreateActivite from "../createActivite";
|
import CreateActivite from "../createActivite";
|
||||||
import Loading from "../loading";
|
import Loading from "../loading";
|
||||||
import { delay } from "../../requetes";
|
import { addActiviteToSession, delay, deletActiviteFromSession, getSessionOfActivite } from "../../requetes";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
session:Session;
|
session:Session;
|
||||||
@@ -22,6 +22,7 @@ function DetailSession({session,open,setOpen}:Props){
|
|||||||
|
|
||||||
function handleDeleteActivite(activite:Activite): void {
|
function handleDeleteActivite(activite:Activite): void {
|
||||||
session.activites.splice(session.activites.indexOf(activite), 1);
|
session.activites.splice(session.activites.indexOf(activite), 1);
|
||||||
|
deletActiviteFromSession(activite);
|
||||||
setActivites([...session.activites])
|
setActivites([...session.activites])
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,8 +32,12 @@ function DetailSession({session,open,setOpen}:Props){
|
|||||||
|
|
||||||
async function updateActivites(){
|
async function updateActivites(){
|
||||||
//TODO
|
//TODO
|
||||||
await delay(2000);
|
//await delay(2000);
|
||||||
//await updateActivitiesOfSessionAPI(session);
|
//await updateActivitiesOfSessionAPI(session);
|
||||||
|
const newActivites = await getSessionOfActivite(session);
|
||||||
|
if(newActivites!=null){
|
||||||
|
session.activites=newActivites;
|
||||||
|
}
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,6 +52,7 @@ function DetailSession({session,open,setOpen}:Props){
|
|||||||
|
|
||||||
function returnActivite(activite: Activite|null){
|
function returnActivite(activite: Activite|null){
|
||||||
if(activite!==null){
|
if(activite!==null){
|
||||||
|
addActiviteToSession(session,activite);
|
||||||
session.activites.push(activite);
|
session.activites.push(activite);
|
||||||
setActivites([...session.activites])
|
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){
|
export async function updateActivitiesOfSessionAPI(session:Session){
|
||||||
try {
|
try {
|
||||||
const session_id = session.id
|
const session_id = session.id
|
||||||
|
|||||||
Reference in New Issue
Block a user