diff --git a/src/modules/open-data/open-data.controller.ts b/src/modules/open-data/open-data.controller.ts index b2b96f0..c911924 100644 --- a/src/modules/open-data/open-data.controller.ts +++ b/src/modules/open-data/open-data.controller.ts @@ -1,5 +1,5 @@ import DadosferaLogger from '@dadosfera/dadosfera-logs'; -import { Body, Controller, Inject, Param, Post, Query, UseFilters, UseGuards } from '@nestjs/common'; +import { Body, Controller, Inject, Param, Post, Query, Req, UseFilters, UseGuards } from '@nestjs/common'; import { ApiCreatedResponse, ApiHeaders, ApiOkResponse, ApiTags } from '@nestjs/swagger'; import { ApiInternalOnlyController } from 'src/decorators/swagger.decorator'; import { GrpcToHttpExceptionFilter } from 'src/error/grpc-to-http-exception.filter'; @@ -11,6 +11,8 @@ import { CreateUserOpenDataDTO, WordpressForm } from './dto/wordpres-form'; import { CORSGuard, SetOrigin } from 'src/decorators/set-origin.decorator'; import { Metadata } from '@grpc/grpc-js'; import { PackTheMetadata } from 'src/utils/ PackTheMetadata'; +import { request } from 'http'; +import { Request } from 'express'; @Controller('open-data') @ApiInternalOnlyController() @@ -29,16 +31,23 @@ export class OpenDataController { } @Post("/sharing-ocean-data") - // @SetOrigin('https://devsbm.dadosfera.io/') + // @SetOrigin('devsbm.dadosfera.io') // @UseGuards(CORSGuard) @ApiOkResponse() async createUser( @Body() body: WordpressForm, - // @Query() - // language: string + @Query('language') + language: string, + @Req() + request: Request, ) { - this.logger.info('createUser for open data' + JSON.stringify({ body })); + this.logger.info('createUser for open data' + + JSON.stringify({ + origin: request.headers.origin, + language, + body + })); // "401573bb-334f-44b2-b30e-88d4cea31ae9" // const OPENDATA_PUBLIC_USERS_GROUP_ID = process.env.OPEN_GROUP_ID; @@ -47,9 +56,9 @@ export class OpenDataController { const OPENDATA_CUSTOMER_ID = "bb4e9b26-d465-40ff-9345-e768ca69a55e"; const roles = ["4d621501-5ea4-444b-b46e-1a009f3132ff"]; - // const metadata = PackTheMetadata({ - // language: , - // }); + const metadata = PackTheMetadata({ + language: language || 'en-us' + }); const data = {} @@ -59,9 +68,9 @@ export class OpenDataController { .forEach(key => { const field = body.fields[key] data[field.id] = field.value - }); + }); } catch (e) { - this.logger.error('user data' + e.message); + this.logger.error('user data ' + e.message); } @@ -75,13 +84,19 @@ export class OpenDataController { this.logger.info('user request' + JSON.stringify({ user, roles, customer: OPENDATA_CUSTOMER_ID })); try { - const response = await this.openDataService.createUser(OPENDATA_CUSTOMER_ID, user, roles); + const response = await this.openDataService.createUser(OPENDATA_CUSTOMER_ID, user, roles, metadata); this.logger.info('user created with sucessfull data' + JSON.stringify(response)); - return "success" + return { + success: true, + message: 'user created with succesfull' + } } catch (e) { this.logger.error('user data' + e.message); - return e; + return { + success: false, + message: e.message + }; } } - + } diff --git a/src/modules/open-data/open-data.service.ts b/src/modules/open-data/open-data.service.ts index 330898d..317b8e3 100644 --- a/src/modules/open-data/open-data.service.ts +++ b/src/modules/open-data/open-data.service.ts @@ -29,7 +29,7 @@ export class OpenDataService implements OnModuleInit { } - async createUser(customerId: string, data: CreateUserOpenDataDTO, roleIds: string[]) { + async createUser(customerId: string, data: CreateUserOpenDataDTO, roleIds: string[], metadata: Metadata) { const body = { email: data.email, name: data.firstName + " " + data.lastName, @@ -41,7 +41,7 @@ export class OpenDataService implements OnModuleInit { try { await lastValueFrom( - this.usersClientService.SimpleUserCreate(body), + this.usersClientService.SimpleUserCreate(body, metadata), ); return "User created"; } catch(err) {