diff --git a/src/controller/session.controller.ts b/src/controller/session.controller.ts index c77a8fe..2753cff 100644 --- a/src/controller/session.controller.ts +++ b/src/controller/session.controller.ts @@ -25,7 +25,7 @@ export class SessionController { id: session.id, size: session.size, userCount: session.users.length, - includesRequester: session.users.includes(user), + includesRequester: session.users.find((u) => u.id === userId), date: session.date, })); } @@ -36,7 +36,7 @@ export class SessionController { @Body('sessionId') sessionId: string, ) { const user = await this.userService.getUserById(userId); - this.sessionService.joinSession(user, sessionId); + await this.sessionService.joinSession(user, sessionId); } @Post('/leave') @@ -45,6 +45,6 @@ export class SessionController { @Body('sessionId') sessionId: string, ) { const user = await this.userService.getUserById(userId); - this.sessionService.leaveSession(user, sessionId); + await this.sessionService.leaveSession(user, sessionId); } } diff --git a/src/service/session.service.ts b/src/service/session.service.ts index 3f2a5a4..aa3393a 100644 --- a/src/service/session.service.ts +++ b/src/service/session.service.ts @@ -22,7 +22,10 @@ export class SessionService { } public getAllSessions() { - return this.sessionRepo.find({ relations: { users: true } }); + return this.sessionRepo.find({ + relations: { users: true }, + order: { date: 'ASC' }, + }); } public async joinSession(user: User, sessionId: string) { @@ -30,12 +33,15 @@ export class SessionService { where: { id: sessionId, }, + relations: { + users: true, + }, }); if (!session) { throw new NotFoundException(); } if ( - session.users.find((u) => u === user) || + session.users.find((u) => u.id === user.id) || session.users.length >= session.size ) { return; @@ -49,11 +55,14 @@ export class SessionService { where: { id: sessionId, }, + relations: { + users: true, + }, }); if (!session) { throw new NotFoundException(); } - session.users = session.users.filter((u) => u !== user); + session.users = session.users.filter((u) => u.id !== user.id); await this.sessionRepo.save(session); } }