From 665eacd39f0133e98aff3cf99f6d8f89e280e16f Mon Sep 17 00:00:00 2001 From: shancheas Date: Tue, 3 Sep 2024 10:23:02 +0700 Subject: [PATCH] feat: add reject QR gate --- .../gates/infrastructure/gate.controller.ts | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/modules/gates/infrastructure/gate.controller.ts b/src/modules/gates/infrastructure/gate.controller.ts index a41da89..74fa973 100644 --- a/src/modules/gates/infrastructure/gate.controller.ts +++ b/src/modules/gates/infrastructure/gate.controller.ts @@ -1,4 +1,5 @@ -import { Body, Controller, Get, Param, Post } from '@nestjs/common'; +import { Body, Controller, Get, Param, Post, Res } from '@nestjs/common'; +import { Response } from 'express'; import { ApiTags } from '@nestjs/swagger'; import { Public } from 'src/core/guards'; import { GateScanEntity } from '../domain/entity/gate-request.entity'; @@ -21,16 +22,24 @@ const masterGates = [ '4c0e6924-baf5-47fb-a15b-fd1cd0958cc0', ]; +const failedGates = [ + 'b3c3ae7b-daf5-4340-998b-ee35ed41323d', + 'be157609-92b8-4989-920d-a81769bcb05a', +]; + const gateResponses = [ { + statusCode: 200, code: 1, message: 'Berhasil Check In', }, { + statusCode: 403, code: 2, message: 'Gagal melakukan Check In. Karena tiket telah kadaluarsa', }, { + statusCode: 403, code: 3, message: 'Gagal melakukan Check In. Tiket tidak tersedia', }, @@ -42,11 +51,25 @@ const gateResponses = [ @Gate() export class GateController { @Post('scan') - async scan(@Body() data: GateScanEntity): Promise { - if (masterGates.includes(data.uuid)) return gateResponses[0]; + async scan( + @Body() data: GateScanEntity, + @Res({ passthrough: true }) res: Response, + ): Promise { + console.log(data); + if (masterGates.includes(data.uuid)) { + res.status(200); + return gateResponses[0]; + } + if (failedGates.includes(data.uuid)) { + res.status(403); + return gateResponses[2]; + } const response = Math.floor(Math.random() * 3); - return gateResponses[response]; + const responseValue = gateResponses[response]; + + res.status(responseValue.statusCode); + return responseValue; } @Get(':id/master')