FIX: sending metadata on creation of users

This commit is contained in:
Gabriel Rosa
2022-09-20 17:48:27 -03:00
parent 3d39affc61
commit c29cf5aee1
6 changed files with 47 additions and 25 deletions
+7 -7
View File
@@ -11,7 +11,7 @@
"license": "UNLICENSED",
"dependencies": {
"@aws-sdk/client-secrets-manager": "^3.112.0",
"@dadosfera/dadosfera-logs": "^1.0.0-beta.3",
"@dadosfera/dadosfera-logs": "1.0.0-beta.4",
"@dadosfera/protospack-v2": "3.17.5",
"@grpc/grpc-js": "^1.6.7",
"@grpc/proto-loader": "^0.6.13",
@@ -1716,9 +1716,9 @@
}
},
"node_modules/@dadosfera/dadosfera-logs": {
"version": "1.0.0-beta.3",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/dadosfera-logs/-/dadosfera-logs-1.0.0-beta.3.tgz",
"integrity": "sha512-VuGiQlpDulcl1+FSFoT4/6PA9Pr+DAzbFHAYesz9rPinR46ejG7ZBZk3m86NYqQtgMyurqXvgCR8GPy9FpwqFw==",
"version": "1.0.0-beta.4",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/dadosfera-logs/-/dadosfera-logs-1.0.0-beta.4.tgz",
"integrity": "sha512-fFncbNVMbfQa2EFl7NJgmtuSRWHGtmwCbl5p++lSLvGcTIMjLGJ4HAMzSMemQhSxiiYlokdwweb7jJY7Ms62SQ==",
"dependencies": {
"@elastic/ecs-winston-format": "^1.3.1",
"winston": "^3.7.2",
@@ -12295,9 +12295,9 @@
}
},
"@dadosfera/dadosfera-logs": {
"version": "1.0.0-beta.3",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/dadosfera-logs/-/dadosfera-logs-1.0.0-beta.3.tgz",
"integrity": "sha512-VuGiQlpDulcl1+FSFoT4/6PA9Pr+DAzbFHAYesz9rPinR46ejG7ZBZk3m86NYqQtgMyurqXvgCR8GPy9FpwqFw==",
"version": "1.0.0-beta.4",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/dadosfera-logs/-/dadosfera-logs-1.0.0-beta.4.tgz",
"integrity": "sha512-fFncbNVMbfQa2EFl7NJgmtuSRWHGtmwCbl5p++lSLvGcTIMjLGJ4HAMzSMemQhSxiiYlokdwweb7jJY7Ms62SQ==",
"requires": {
"@elastic/ecs-winston-format": "^1.3.1",
"winston": "^3.7.2",
+1 -1
View File
@@ -26,7 +26,7 @@
},
"dependencies": {
"@aws-sdk/client-secrets-manager": "^3.112.0",
"@dadosfera/dadosfera-logs": "^1.0.0-beta.3",
"@dadosfera/dadosfera-logs": "1.0.0-beta.4",
"@dadosfera/protospack-v2": "3.17.5",
"@grpc/grpc-js": "^1.6.7",
"@grpc/proto-loader": "^0.6.13",
+8 -2
View File
@@ -45,6 +45,7 @@ import {
UserByCustomer,
} from './dtos/entities';
import { UsersService } from './users.service';
import { Metadata } from '@grpc/grpc-js';
// TODO GET de hierarquias e do PATCH em usuário
@ApiTags('Users')
@@ -141,9 +142,12 @@ export class UsersController {
@Body() body: CreateUserReq,
@Headers('dadosfera-lang') language,
) {
const meta = new Metadata();
meta.add('access_token', user.access_token);
this.logger.info('createUser', { user });
this.userService.setLanguage(language);
return await this.userService.createUser(body);
return await this.userService.createUser(body, meta);
}
@Post('batch')
@@ -154,9 +158,11 @@ export class UsersController {
@Body() body: BatchCreateUserReq,
@Headers('dadosfera-lang') language,
) {
const meta = new Metadata();
meta.add('access_token', user.access_token);
this.logger.info('batchCreateUser', { user });
this.userService.setLanguage(language);
return await this.userService.batchCreateUser(body);
return await this.userService.batchCreateUser(body, meta);
}
@Post(':id/resend-invite')
+22 -15
View File
@@ -27,6 +27,7 @@ import { LanguageEnum } from 'src/utils/languages.enum';
import { UserByCustomer } from '@dadosfera/protospack-v2/dist/lib/Duc/interfaces/entities';
import { EnrichErrorCode } from 'src/utils/ErrorBuilder';
import { DucClient } from '../duc/client.config';
import { Metadata } from '@grpc/grpc-js';
@Injectable()
export class UsersService implements OnModuleInit {
@@ -83,18 +84,21 @@ export class UsersService implements OnModuleInit {
return { user: this.adjustUsersPayload([user])[0] };
}
async createUser(req: CreateUserReq) {
async createUser(req: CreateUserReq, meta?: Metadata) {
const { email, department, hierarchy, jobTitle, name, roleNames } = req;
const { user } = await lastValueFrom(
this.usersClientService.UserCreate({
email,
hierarchy,
name,
roleIds: [],
department,
jobTitle,
roleNames,
}),
this.usersClientService.UserCreate(
{
email,
hierarchy,
name,
roleIds: [],
department,
jobTitle,
roleNames,
},
meta,
),
);
return { user: this.adjustUsersPayload([user])[0] };
}
@@ -134,7 +138,8 @@ export class UsersService implements OnModuleInit {
return { user: this.adjustUsersPayload([user])[0] };
}
async batchCreateUser({ users }: BatchCreateUserReq) {
async batchCreateUser(req: BatchCreateUserReq, meta?: Metadata) {
const { users } = req;
const usersToCreate: UserCreateRequest[] = users.map(
({ roleNames, email, department, hierarchy, jobTitle, name }) => ({
roleNames,
@@ -147,14 +152,16 @@ export class UsersService implements OnModuleInit {
}),
);
const { errorUsers, usersCreated } = await lastValueFrom(
this.usersClientService.UserBatchCreate({
users: usersToCreate,
}),
this.usersClientService.UserBatchCreate(
{
users: usersToCreate,
},
meta,
),
);
return {
usersCreated: this.adjustUsersPayload(usersCreated),
// mapping error code to message
errorUsers: errorUsers.map(({ user, error }) => ({
user,
error: EnrichErrorCode(error).message,
+8
View File
@@ -185,6 +185,14 @@ export function EnrichErrorCode(code: string) {
code,
};
case ErrorCodes.USER.NOT_CREATED:
return {
statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
error: 'Ocorreu um erro ao criar seu usúario',
message: 'Tente novamente ou entre em contato com o suporte',
code,
};
case ErrorCodes.USER.NOT_FOUND:
return {
statusCode: HttpStatus.NOT_FOUND,
+1
View File
@@ -31,6 +31,7 @@ export const USER = {
ALREADY_EXISTS: 'USER.ALREADY_EXISTS',
ROLE_ALREADY_ASSIGNED: 'USER.ROLE_ALREADY_ASSIGNED',
ROLE_NOT_ASSIGNED: 'USER.ROLE_NOT_ASSIGNED',
NOT_CREATED: 'USER.NOT_CREATED',
};
export const CUSTOMER = {