diff --git a/src/controller/access.controller.ts b/src/controller/access.controller.ts index 0a57988..130314c 100644 --- a/src/controller/access.controller.ts +++ b/src/controller/access.controller.ts @@ -21,21 +21,22 @@ export class AccessController { @Post('/login') @Public() public async login( - @Body('name') name: string, + @Body('email') email: string, @Body('password') password: string, ) { this.logger.debug('Received login request'); - return await this.authService.signIn(name, password); + return await this.authService.signIn(email, password); } @Post('/register') @Public() public async new( + @Body('email') email: string, @Body('name') name: string, @Body('password') password: string, ) { this.logger.debug('Received register request'); - await this.userService.createUser(name, password); + await this.userService.createUser(email, name, password); return await this.authService.signIn(name, password); } } diff --git a/src/dto/user.ts b/src/dto/user.ts index cbe9b01..b75938e 100644 --- a/src/dto/user.ts +++ b/src/dto/user.ts @@ -17,6 +17,9 @@ export class User { @PrimaryGeneratedColumn('uuid') id: string; + @Column() + email: string; + @Column() name: string; diff --git a/src/service/auth.service.ts b/src/service/auth.service.ts index 04c79fe..a583e82 100644 --- a/src/service/auth.service.ts +++ b/src/service/auth.service.ts @@ -10,8 +10,8 @@ export class AuthService { private jwtService: JwtService, ) {} - public async signIn(name: string, password: string) { - const user = await this.usersService.getUserByName(name); + public async signIn(email: string, password: string) { + const user = await this.usersService.getUserByEmail(email); if (!(await bcrypt.compare(password, user?.password))) { throw new UnauthorizedException(); } diff --git a/src/service/session.service.ts b/src/service/session.service.ts index 08ad953..4f07b01 100644 --- a/src/service/session.service.ts +++ b/src/service/session.service.ts @@ -39,6 +39,7 @@ export class SessionService { id: sessionId, status: In([SessionStatus.SCHEDULED, SessionStatus.OPEN]), }, + relations: { users: true }, }); Promise.all( session.users.map( @@ -56,6 +57,7 @@ export class SessionService { id: sessionId, status: In([SessionStatus.SCHEDULED, SessionStatus.OPEN]), }, + relations: { users: true }, }); Promise.all( session.users.map( diff --git a/src/service/user.service.ts b/src/service/user.service.ts index a1d6790..b0c8daa 100644 --- a/src/service/user.service.ts +++ b/src/service/user.service.ts @@ -11,9 +11,9 @@ export class UserService { constructor(@InjectRepository(User) private userRepo: Repository) {} - public async getUserByName(name: string) { - this.logger.debug(`Get user by name: ${name}`); - const user = await this.userRepo.findOne({ where: { name: name } }); + public async getUserByEmail(email: string) { + this.logger.debug(`Get user by email: ${email}`); + const user = await this.userRepo.findOne({ where: { email: email } }); if (!user) { throw new NotFoundException(); } @@ -29,17 +29,15 @@ export class UserService { return user; } - public async createUser(name: string, password: string) { + public async createUser(email: string, name: string, password: string) { try { - await this.getUserByName(name); + await this.getUserByEmail(name); throw new NotFoundException(); } catch (e) { if (!(e instanceof NotFoundException)) throw e; } this.logger.debug(`Creating user with name: ${name}`); - this.logger.debug(`BCrypt password: ${await bcrypt.hash(password, 10)}`); - this.logger.debug(`Password: ${password}`); const user: User = this.userRepo.create({ name, password: await bcrypt.hash(password, 10),