diff --git a/src/authentication/authentication.guard.ts b/src/authentication/authentication.guard.ts index b663a3b..6e04694 100644 --- a/src/authentication/authentication.guard.ts +++ b/src/authentication/authentication.guard.ts @@ -3,7 +3,6 @@ import { CanActivate, OnApplicationBootstrap, ExecutionContext, - Logger, Inject, } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index 180cfa6..59ff8a8 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -1,9 +1,6 @@ import { credentials } from '@grpc/grpc-js'; import { ClientOptions, Transport } from '@nestjs/microservices'; -import { - ProtoPackages, - ProtoPaths, -} from 'protospack-v2/dist/lib/Duc'; +import { ProtoPackages, ProtoPaths } from 'protospack-v2/dist/lib/Duc'; export class DucClient { config(): ClientOptions { diff --git a/src/clients/outputs/client.service.ts b/src/clients/outputs/client.service.ts index 7f0b959..abfa662 100644 --- a/src/clients/outputs/client.service.ts +++ b/src/clients/outputs/client.service.ts @@ -1,10 +1,7 @@ import { Controller, Inject, OnModuleInit } from '@nestjs/common'; import { ClientGrpc, Payload } from '@nestjs/microservices'; import { DadosferaLogger } from 'dadosfera-logs'; -import { - OutputServicesNames, - OutputsServiceInterface, -} from 'protospack'; +import { OutputServicesNames, OutputsServiceInterface } from 'protospack'; import { objectCamelToSnake, objectSnakeToCamel, diff --git a/src/clients/pipelines/client.config.ts b/src/clients/pipelines/client.config.ts index 01083eb..3f5b72d 100644 --- a/src/clients/pipelines/client.config.ts +++ b/src/clients/pipelines/client.config.ts @@ -1,8 +1,5 @@ import { ClientOptions, Transport } from '@nestjs/microservices'; -import { - PipelinePackages, - PipelineProtoFilePath, -} from 'protospack'; +import { PipelinePackages, PipelineProtoFilePath } from 'protospack'; import { credentials } from '@grpc/grpc-js'; export class PipelinesClientConfiguration { diff --git a/src/modules/inputs/inputs.service.ts b/src/modules/inputs/inputs.service.ts index 29d9750..812e189 100644 --- a/src/modules/inputs/inputs.service.ts +++ b/src/modules/inputs/inputs.service.ts @@ -7,7 +7,7 @@ import { IIdRequest, Info } from 'src/clients/inputs/interfaces'; @Injectable() export class InputsService { - constructor(private inputClient: InputsClientService) { } + constructor(private inputClient: InputsClientService) {} secondsInADay = 60 * 60 * 24; secondsInAnHour = 60 * 60; @@ -54,7 +54,7 @@ export class InputsService { switch (data.plugin.toLowerCase()) { case 'csv': case 'json': - case 'parquet': + case 'parquet': { const { info, ...input } = data; const inputPayload = this.generateInputS3Payload(input); response = await this.inputClient.createS3Inputs({ @@ -62,6 +62,7 @@ export class InputsService { info, }); break; + } case 'oracle': case 'mysql': case 'postgresql': diff --git a/src/modules/users/dtos/entities.ts b/src/modules/users/dtos/entities.ts index ef8fd41..fb94328 100644 --- a/src/modules/users/dtos/entities.ts +++ b/src/modules/users/dtos/entities.ts @@ -75,6 +75,46 @@ export class User { @ApiProperty() updatedAt: string; } +export class CreateUserReq { + @ApiProperty() + name: string; + @ApiProperty() + username: string; + @ApiProperty() + email: string; + @ApiProperty() + roles: string[]; + @ApiProperty() + jobTitle: string; + @ApiProperty() + department: string; + @ApiProperty() + hierarchy: number; + @ApiProperty() + customer: Customer; + @ApiProperty() + mfaStatus: string; + @ApiProperty() + createdAt: string; + @ApiProperty() + updatedAt: string; +} +export class CreateUserRes { + @ApiProperty() + id: string; + @ApiProperty() + name: string; + @ApiProperty() + email: string; + @ApiProperty() + roles: string[]; + @ApiProperty() + jobTitle: string; + @ApiProperty() + department: string; + @ApiProperty() + hierarchy: number; +} export class GetAllUsersByCustomerIdReq { @ApiPropertyOptional() @@ -97,6 +137,10 @@ export class UnassignRoleToUserReq { @ApiProperty() roleId: string; } +export class DeleteUserRes { + @ApiProperty() + id: string; +} export class SearchUserReq { @ApiProperty() diff --git a/src/modules/users/users.controller.ts b/src/modules/users/users.controller.ts index 8d20675..0871659 100644 --- a/src/modules/users/users.controller.ts +++ b/src/modules/users/users.controller.ts @@ -4,6 +4,8 @@ import { Delete, Get, Inject, + Param, + Post, Put, Query, } from '@nestjs/common'; @@ -12,6 +14,9 @@ import { DadosferaLogger } from 'dadosfera-logs'; import { RequestUser, User } from 'src/authentication/user.decorator'; import { AssignRoleToUserReq, + CreateUserReq, + CreateUserRes, + DeleteUserRes, GetAllUsersByCustomerIdReq, GetAllUsersByCustomerIdRes, UnassignRoleToUserReq, @@ -31,6 +36,19 @@ export class UsersController { this.logger = dadosferaLogger.logger; } + @Post() + @ApiOkResponse({ type: CreateUserRes }) + async createUser(@User() user, @Body() body: CreateUserReq) { + console.log(body); + } + + @Delete(':id') + @ApiOkResponse({ type: DeleteUserRes }) + async deleteUser(@User() user, @Param('id') id: string) { + this.logger.info('deleteUser', { user }); + return await this.userService.deleteUser({ id }); + } + @Get() @ApiOkResponse({ type: GetAllUsersByCustomerIdRes, diff --git a/src/modules/users/users.service.ts b/src/modules/users/users.service.ts index 63a4a8c..86263ac 100644 --- a/src/modules/users/users.service.ts +++ b/src/modules/users/users.service.ts @@ -6,13 +6,10 @@ import { ProtoServices } from 'protospack-v2/dist/lib/Duc'; import { UsersProtoService } from 'protospack-v2/dist/lib/Duc/interfaces/write-service'; import { AssignRoleToUserRequest, - AssignRoleToUserResponse, + IdRequest, UnassignRoleFromUserRequest, - UnassignRoleFromUserResponse, - UserFindAllByCustomerIdResponse, } from 'protospack-v2/dist/lib/Duc/interfaces/messages'; - -import grpcHandler from '../../utils/grpcHandler'; +import { lastValueFrom } from 'rxjs'; @Injectable() export class UsersService implements OnModuleInit { @@ -34,20 +31,20 @@ export class UsersService implements OnModuleInit { } async findAllUsersByCustomerId(customerId, searchQuery) { - return grpcHandler( + return lastValueFrom( this.usersService.UserFindAllByCustomerId({ customerId }), ); } async assignRoleToUser(body: AssignRoleToUserRequest) { - return grpcHandler( - this.usersService.AssignRoleToUser(body), - ); + return lastValueFrom(this.usersService.AssignRoleToUser(body)); } async unassignRoleToUser(body: UnassignRoleFromUserRequest) { - return grpcHandler( - this.usersService.UnassignRoleFromUser(body), - ); + return lastValueFrom(this.usersService.UnassignRoleFromUser(body)); + } + + async deleteUser(id: IdRequest) { + return lastValueFrom(this.usersService.UserRemove(id)); } }