From 5a4d578d133a756e8e594d7233b57fa1fd5ddf19 Mon Sep 17 00:00:00 2001 From: marcos-silva-rodrigues Date: Fri, 28 Mar 2025 12:30:55 -0300 Subject: [PATCH] FEAT: block, unblock and reset users --- package-lock.json | 8 ++++---- package.json | 2 +- src/modules/auth/auth.controller.ts | 17 ++++++++++------- src/modules/auth/auth.service.ts | 18 +++++++++--------- src/modules/auth/dtos/login.ts | 9 +++------ 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30b02dc..20c2fcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@aws-sdk/client-secrets-manager": "^3.414.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.4", "@dadosfera/protospack": "2.5.3", - "@dadosfera/protospack-v2": "3.37.0-alpha.18", + "@dadosfera/protospack-v2": "3.37.0-alpha.19", "@grpc/grpc-js": "^1.9.3", "@grpc/proto-loader": "^0.7.9", "@nestjs/cli": "^9.5.0", @@ -1397,9 +1397,9 @@ } }, "node_modules/@dadosfera/protospack-v2": { - "version": "3.37.0-alpha.18", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.37.0-alpha.18.tgz", - "integrity": "sha512-hhcskw1DT9jtmJcQXrFwgUnTti6ZALZM04YevJgqQNR6yS+C6040UZf3c/6vcjRm5/9h9OMiJJApzivPTBK46g==", + "version": "3.37.0-alpha.19", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.37.0-alpha.19.tgz", + "integrity": "sha512-+F2sMJszfXRqWuN5ae+v7MqHhJyg7TgVvnuFBKUOwHvBoWCfAUnIm9XGEA/YjPpRUa1gM0nnKL8SpBFf43Q1aA==", "license": "ISC", "dependencies": { "@grpc/grpc-js": "^1.9.3", diff --git a/package.json b/package.json index ff6b236..91ed2f0 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@aws-sdk/client-secrets-manager": "^3.414.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.4", "@dadosfera/protospack": "2.5.3", - "@dadosfera/protospack-v2": "3.37.0-alpha.18", + "@dadosfera/protospack-v2": "3.37.0-alpha.19", "@grpc/grpc-js": "^1.9.3", "@grpc/proto-loader": "^0.7.9", "@nestjs/cli": "^9.5.0", diff --git a/src/modules/auth/auth.controller.ts b/src/modules/auth/auth.controller.ts index e327dfa..d80bc31 100644 --- a/src/modules/auth/auth.controller.ts +++ b/src/modules/auth/auth.controller.ts @@ -43,6 +43,7 @@ import { AuthRefreshAccessTokenRes, AuthSignInReq, AuthSignInRes, + BulkEditRequest, } from './dtos/login'; import { PackTheMetadata } from 'src/utils/ PackTheMetadata'; import { AuthGuard } from '@nestjs/passport'; @@ -52,9 +53,7 @@ import jwt from 'jsonwebtoken'; import { LanguageEnum } from 'src/utils/languages.enum'; import { Language } from 'src/decorators/language.decorator'; import { ApiInternalOnlyEndpoint } from 'src/decorators/swagger.decorator'; -import { Metadata } from '@grpc/grpc-js'; -import { lastValueFrom } from 'rxjs'; -import { UserOneResponse } from '@dadosfera/protospack-v2/dist/lib/Duc/interfaces/messages'; + @ApiTags('Auth') @ApiHeaders([{ name: 'dadosfera-lang', enum: LanguageEnum, required: false }]) @@ -356,9 +355,10 @@ export class AuthController { async blockUsers( @Language() language: LanguageEnum, @User() user: RequestUser, + @Body() body: BulkEditRequest ) { this.logger.info('blockUsers - Starting request'); - + try { const metadata = PackTheMetadata({ customer_id: user.customer_id, @@ -372,7 +372,7 @@ export class AuthController { } }); - const result = await this.authClient.blockUsers(metadata); + const result = await this.authClient.blockUsers(body.users, metadata); this.logger.info('blockUsers - Success', { result }); return result; } catch (error) { @@ -391,6 +391,7 @@ export class AuthController { async unblockUsers( @Language() language: LanguageEnum, @User() user: RequestUser, + @Body() body: BulkEditRequest ) { this.logger.info('unblockUsers'); const metadata = PackTheMetadata({ @@ -398,7 +399,7 @@ export class AuthController { language, }); - return this.authClient.unblockUsers(metadata); + return this.authClient.unblockUsers(body.users, metadata); } @ApiInternalOnlyEndpoint() @@ -408,13 +409,15 @@ export class AuthController { async resetUsers( @Language() language: LanguageEnum, @User() user: RequestUser, + @Body() body: BulkEditRequest ) { this.logger.info('resetUsers'); const metadata = PackTheMetadata({ access_token: user.access_token, + customer_id: user.customer_id, language, }); - return this.authClient.resetUsers( metadata); + return this.authClient.resetUsers(body.users, metadata); } } diff --git a/src/modules/auth/auth.service.ts b/src/modules/auth/auth.service.ts index 87aed6e..f99ff3a 100644 --- a/src/modules/auth/auth.service.ts +++ b/src/modules/auth/auth.service.ts @@ -20,7 +20,7 @@ import { } from '@dadosfera/protospack-v2/dist/lib/Duc/interfaces/messages'; import { DucClient } from '../duc/client.config'; import { Metadata } from '@grpc/grpc-js'; -import { UserActionRequest, UserActionResponse } from './dtos/login'; +import { BulkEditResponse } from './dtos/login'; @Injectable() export class AuthClientService implements OnModuleInit { @@ -170,7 +170,7 @@ export class AuthClientService implements OnModuleInit { ); } - async blockUsers(metadata: Metadata): Promise { + async blockUsers(users: string[],metadata: Metadata): Promise { this.logger.info('blockUsers - Service starting'); try { @@ -181,8 +181,8 @@ export class AuthClientService implements OnModuleInit { } }); - const response = await lastValueFrom( - this.authService.BlockUser({}, metadata), + const response = await lastValueFrom( + this.authService.BlockUser({ users }, metadata), ); this.logger.info('blockUsers - Service success', { response }); @@ -196,14 +196,14 @@ export class AuthClientService implements OnModuleInit { } } - async unblockUsers(metadata: Metadata): Promise { + async unblockUsers(users: string[],metadata: Metadata): Promise { this.logger.info('unblockUsers'); return await lastValueFrom( - this.authService.UnblockUser({}, metadata), + this.authService.UnblockUser({ users }, metadata), ); } - async resetUsers(metadata: Metadata): Promise { + async resetUsers(users: string[], metadata: Metadata): Promise { this.logger.info('resetUsers'); try { @@ -214,8 +214,8 @@ export class AuthClientService implements OnModuleInit { } }); - const response = await lastValueFrom( - this.authService.ResetUser({}, metadata) + const response = await lastValueFrom( + this.authService.ResetUser({ users }, metadata) ); this.logger.info('resetUsers - Success', { response }); diff --git a/src/modules/auth/dtos/login.ts b/src/modules/auth/dtos/login.ts index 3081df5..b3890fe 100644 --- a/src/modules/auth/dtos/login.ts +++ b/src/modules/auth/dtos/login.ts @@ -129,14 +129,11 @@ export class AuthRefreshAccessTokenRes { accessToken: string; } -export interface UserActionRequest { - users: { - userIds: string[]; - }; - defaultPassword?: string; +export interface BulkEditRequest { + users: string[]; } -export interface UserActionResponse { +export interface BulkEditResponse { message: string; successfulUsers: string[]; failedUsers: string[];