| 19 | @ApiTags('Sessões') |
| 20 | @Controller('sessions') |
| 21 | export class SessionsController { |
| 22 | private logger = new Logger(SessionsController.name); |
| 23 | |
| 24 | constructor(private readonly sessionService: SessionsService) {} |
| 25 | |
| 26 | @Post('') |
| 27 | async login( |
| 28 | @Body() body, |
| 29 | @Headers('x-real-ip') ip: string, |
| 30 | @Headers('user-agent') userAgent: string, |
| 31 | ) { |
| 32 | try { |
| 33 | const data = await this.sessionService.login({ ...body, ip, userAgent }); |
| 34 | return new ServerResponse(200, 'Successfully logged in', data); |
| 35 | } catch (err: any) { |
| 36 | this.logger.error(`Failed to login ${err}`); |
| 37 | throw new HttpException( |
| 38 | err?.message ?? err?.code ?? err?.name ?? `${err}`, |
| 39 | 400, |
| 40 | ); |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | @Get('') |
| 45 | @UseGuards(UserGuard) |
| 46 | async show(@Request() req) { |
| 47 | try { |
| 48 | const { userId } = req.user; |
| 49 | const data = await this.sessionService.show(userId); |
| 50 | return new ServerResponse(200, 'Successfully logged in', data); |
| 51 | } catch (err: any) { |
| 52 | this.logger.error(`Failed to login ${err}`); |
| 53 | throw new HttpException(err?.code ?? err?.name ?? `${err}`, 400); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | @Delete('') |
| 58 | @UseGuards(UserGuard) |
| 59 | async delete(@Request() req) { |
| 60 | try { |
| 61 | const data = await this.sessionService.delete(req.user); |
| 62 | return new ServerResponse(200, 'Successfully logged out', data); |
| 63 | } catch (err: any) { |
| 64 | this.logger.error(`Failed to logged out ${err}`); |
| 65 | throw new HttpException(err?.code ?? err?.name ?? `${err}`, 400); |
| 66 | } |
| 67 | } |
| 68 | } |
nothing calls this directly
no outgoing calls
no test coverage detected