Merge remote-tracking branch 'origin/main'
# Conflicts: # back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java
This commit is contained in:
@@ -130,6 +130,18 @@ public class SessionResource {
|
||||
return ResponseEntity.ok(activiteDTOs);
|
||||
} catch (Exception ex) {
|
||||
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
|
||||
//Commented because not finished
|
||||
|
||||
@GetMapping("/{id_session}/activities/add/{id_act}")
|
||||
@PreAuthorize("hasRole('coach') or hasRole('admin')")
|
||||
public ResponseEntity<?> addActivity(@PathVariable Integer id_sess, @PathVariable Integer id_act) {
|
||||
Session s = sessionDAO.findById(id_sess).get();
|
||||
if(s.equals(null)){
|
||||
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Session not found");
|
||||
}
|
||||
Activite a = activiteDAO.findById(id_act).get();
|
||||
if(a.equals(null)){
|
||||
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Activite not found");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,6 +161,12 @@ public class SessionResource {
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
List<Activite> l = s.getActivites();
|
||||
l.add(a);
|
||||
s.setActivites(l);
|
||||
sessionDAO.save(s);
|
||||
return ResponseEntity.status(200).body(maptoDTO(s));
|
||||
}
|
||||
|
||||
private SessionDTO maptoDTO(Session s) {
|
||||
SessionDTO dto = new SessionDTO();
|
||||
@@ -183,7 +201,7 @@ public class SessionResource {
|
||||
|
||||
private Session maptoEntity(SessionDTO dto) {
|
||||
Session session = new Session();
|
||||
System.out.println("ID " + session.getId());
|
||||
System.out.println("ID "+ session.getId());
|
||||
session.setName(dto.getName());
|
||||
session.setIsRecurrent(dto.getIsRecurrent());
|
||||
session.setCreneau(dto.getCreneau());
|
||||
|
||||
@@ -50,6 +50,7 @@ export const athleteService = {
|
||||
getActivitiesForSession: (sessionId: number | string) => api.get(`/athletes/session/${sessionId}/activities`),
|
||||
getSessionsAfterDate: (athleteId: number | string, date: string) => api.get(`/athletes/${athleteId}/session/after/${encodeURIComponent(date)}`),
|
||||
getSessionsBetweenDates: (athleteId: number | string, startDate: string, endDate: string) => api.get(`/athletes/${athleteId}/session/between/${encodeURIComponent(startDate)}/${encodeURIComponent(endDate)}`),
|
||||
addActivity: (id_sess: number, id_act: number) => api.get(`/${id_sess}/activities/add/${id_act}`)
|
||||
};
|
||||
|
||||
export const activiteService = {
|
||||
@@ -70,10 +71,10 @@ 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(`/sessions/${sessionId}/activities`),
|
||||
addActivity: (sessionId: number | string, activity: any) => api.post(`/sessions/${sessionId}/activities`, activity),
|
||||
subscribe: (sessionId: number | string, userId: number | string) => api.post(`/sessions/${sessionId}/subscribe`, { userId }),
|
||||
unsubscribe: (sessionId: number | string, userId: number | string) => api.post(`/sessions/${sessionId}/unsubscribe`, { userId }),
|
||||
getActivities: (sessionId: number | string) => api.get(`/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 }),
|
||||
};
|
||||
|
||||
export const coachService = {
|
||||
|
||||
@@ -66,15 +66,20 @@ export async function loginOrRegister(keycloak:Keycloak): Promise<User|null>{
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateActivitiesOfSessionAPI(session:Session,activities:Activite[]){
|
||||
export async function updateActivitiesOfSessionAPI(session:Session){
|
||||
try {
|
||||
const session_id = session.id
|
||||
for (const activity of activities) {
|
||||
const response = await activiteService.update(activity.id!, activity.toDTO());
|
||||
}
|
||||
console.log("TEST:");
|
||||
console.log(session.activites);
|
||||
session.activites.forEach(activite => {
|
||||
console.log("FOR");
|
||||
if(activite.id!=null){
|
||||
activiteService.update(activite.id, activite.toDTO());
|
||||
}
|
||||
});
|
||||
// To refresh the activities in the session object
|
||||
const response = await sessionService.getActivities(session_id!);
|
||||
session.activites = response.data;
|
||||
//const response = await sessionService.getActivities(session_id!);
|
||||
//session.activites = response.data;
|
||||
} catch (error) {
|
||||
console.error("Error fetching activities for session:", error);
|
||||
}
|
||||
@@ -113,16 +118,20 @@ export async function createSessionAPI(session: Session): Promise<Session> {
|
||||
async function postActivite(activite:Activite,sessionRes:Session){
|
||||
activite.session = sessionRes;
|
||||
const activite2 = await createActivityAPI(activite);
|
||||
activite2.session = sessionRes;
|
||||
sessionRes.activites.push(activite2);
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await api.post<SessionDTO>("/session/create", session.toDTO());
|
||||
const sessionRes:Session = new Session(response.data);
|
||||
await session.activites.forEach(activite => {
|
||||
postActivite(activite,sessionRes);
|
||||
});
|
||||
updateActivitiesOfSessionAPI(session,session.activites);
|
||||
await Promise.all(
|
||||
session.activites.map(activite =>
|
||||
postActivite(activite, sessionRes)
|
||||
)
|
||||
);
|
||||
console.log(sessionRes.activites);
|
||||
updateActivitiesOfSessionAPI(sessionRes);
|
||||
|
||||
return sessionRes;
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user