From f383cf49d5e5df11244551cb2e6c53f48dd160f6 Mon Sep 17 00:00:00 2001 From: Arthur Simas Date: Mon, 11 Jul 2022 02:13:53 -0300 Subject: [PATCH] FIX: added get token method --- package-lock.json | 14 +++++++------- package.json | 2 +- src/modules/termsOfUse/termsOfUse.controller.ts | 9 +++++++++ src/modules/termsOfUse/termsOfUse.service.ts | 9 ++++++++- src/utils/ErrorBuilder.ts | 8 ++++++++ src/utils/errorCodes.ts | 1 + 6 files changed, 34 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a1985d..3df21a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.1", - "protospack-v2": "3.1.0", + "protospack-v2": "3.1.1", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", @@ -8997,9 +8997,9 @@ } }, "node_modules/protospack-v2": { - "version": "3.1.0", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.0.tgz", - "integrity": "sha512-Y4WL0PqU2L2mU6SIGMTMEKP0gj4cT2No3AYFEWMiiTfaR7u3WHQAZxk6alIkOexotaQT9YiLKBXghMwDmlh40g==", + "version": "3.1.1", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.1.tgz", + "integrity": "sha512-uY9hsP2oO7kar1EUUjUhVLI8VQ3seWO2+WVS0XS9vjWZPUI82k7KqB70uYB+5ws2dMSowomPjiqpQ13VNjk6ZQ==", "dependencies": { "rxjs": "^7.5.5", "ts-proto": "^1.112.2" @@ -17198,9 +17198,9 @@ } }, "protospack-v2": { - "version": "3.1.0", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.0.tgz", - "integrity": "sha512-Y4WL0PqU2L2mU6SIGMTMEKP0gj4cT2No3AYFEWMiiTfaR7u3WHQAZxk6alIkOexotaQT9YiLKBXghMwDmlh40g==", + "version": "3.1.1", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.1.tgz", + "integrity": "sha512-uY9hsP2oO7kar1EUUjUhVLI8VQ3seWO2+WVS0XS9vjWZPUI82k7KqB70uYB+5ws2dMSowomPjiqpQ13VNjk6ZQ==", "requires": { "rxjs": "^7.5.5", "ts-proto": "^1.112.2" diff --git a/package.json b/package.json index 3ee03fb..a8b632b 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.1", - "protospack-v2": "3.1.0", + "protospack-v2": "3.1.1", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", diff --git a/src/modules/termsOfUse/termsOfUse.controller.ts b/src/modules/termsOfUse/termsOfUse.controller.ts index c2ac3c3..4872e9a 100644 --- a/src/modules/termsOfUse/termsOfUse.controller.ts +++ b/src/modules/termsOfUse/termsOfUse.controller.ts @@ -2,6 +2,7 @@ import { Body, Controller, Post, + Get, HttpCode, HttpStatus, Inject, @@ -15,6 +16,7 @@ import { TermsOfUseClientService } from './termsOfUse.service'; import { DadosferaLogger } from 'dadosfera-logs'; import { GrpcToHttpExceptionFilter } from '../../error/grpc-to-http-exception.filter'; +import { RequestUser, User } from '../../authentication/user.decorator'; @ApiTags('TermsOfUse') @UseFilters(new GrpcToHttpExceptionFilter()) @@ -30,6 +32,13 @@ export class TermsOfUseController { this.logger = dadosferaLogger.logger; } + @Get('token') + async getToken(@User({ required: true }) user: RequestUser) { + this.logger.info('/terms-of-use - get token'); + + return this.termsOfUseClient.getToken({ userId: user.user_id }); + } + @Post('accept') @HttpCode(HttpStatus.OK) async accept(@Body() body: TermsOfUseAcceptRequest, @Headers() headers) { diff --git a/src/modules/termsOfUse/termsOfUse.service.ts b/src/modules/termsOfUse/termsOfUse.service.ts index e2b74b8..b839795 100644 --- a/src/modules/termsOfUse/termsOfUse.service.ts +++ b/src/modules/termsOfUse/termsOfUse.service.ts @@ -5,7 +5,10 @@ import { lastValueFrom } from 'rxjs'; import { ProtoServices } from 'protospack-v2/dist/lib/Duc'; import { TermsOfUseProtoService as TermsOfUseServiceInterface } from 'protospack-v2/dist/lib/Duc/interfaces/write-service'; -import { TermsOfUseAcceptRequest } from 'protospack-v2/dist/lib/Duc/interfaces/messages'; +import { + TermsOfUseGetTokenRequest, + TermsOfUseAcceptRequest, +} from 'protospack-v2/dist/lib/Duc/interfaces/messages'; @Injectable() export class TermsOfUseClientService implements OnModuleInit { @@ -27,6 +30,10 @@ export class TermsOfUseClientService implements OnModuleInit { ); } + async getToken(data: TermsOfUseGetTokenRequest) { + return lastValueFrom(this.termsOfUseService.TermsOfUseGetToken(data)); + } + async accept(data: TermsOfUseAcceptRequest) { return lastValueFrom(this.termsOfUseService.TermsOfUseAccept(data)); } diff --git a/src/utils/ErrorBuilder.ts b/src/utils/ErrorBuilder.ts index ec0cb41..50d8640 100644 --- a/src/utils/ErrorBuilder.ts +++ b/src/utils/ErrorBuilder.ts @@ -86,6 +86,14 @@ export function EnrichErrorCode(code: string) { code, }; + case ErrorCodes.TERMS_OF_USE.UP_TO_DATE: + return { + statusCode: HttpStatus.FORBIDDEN, + error: 'Não autorizado', + message: 'Você já assinou os termos de uso', + code, + }; + case ErrorCodes.TERMS_OF_USE.REQUIRED: return { statusCode: HttpStatus.FORBIDDEN, diff --git a/src/utils/errorCodes.ts b/src/utils/errorCodes.ts index 189584a..0293678 100644 --- a/src/utils/errorCodes.ts +++ b/src/utils/errorCodes.ts @@ -15,6 +15,7 @@ export const AUTH = { }; const TERMS_OF_USE = { + UP_TO_DATE: 'TERMS_OF_USE.UP_TO_DATE', REQUIRED: 'TERMS_OF_USE.REQUIRED', };