diff --git a/src/clients/inputs/client.service.ts b/src/clients/inputs/client.service.ts index 7082ccd..e9e3f83 100644 --- a/src/clients/inputs/client.service.ts +++ b/src/clients/inputs/client.service.ts @@ -5,6 +5,7 @@ import { HttpStatus, NotFoundException, InternalServerErrorException, + BadRequestException, } from '@nestjs/common'; import { ClientGrpc } from '@nestjs/microservices'; import { @@ -64,7 +65,7 @@ export class InputsClientService implements OnModuleInit { const structReturn = await lastValueFrom( this.inputService.Create(grpcPayload), - ).catch((err) => { + ).catch((err: { details: string }) => { if (err.details === 'Item Not found!') { throw new NotFoundException('Input not found'); } diff --git a/src/clients/pipelines/client.service.ts b/src/clients/pipelines/client.service.ts index 028fe1a..9383eb2 100644 --- a/src/clients/pipelines/client.service.ts +++ b/src/clients/pipelines/client.service.ts @@ -1,9 +1,16 @@ -import { HttpException, Inject, OnModuleInit } from '@nestjs/common'; +import { + BadRequestException, + HttpException, + Inject, + InternalServerErrorException, + OnModuleInit, +} from '@nestjs/common'; import { ClientGrpc, Payload } from '@nestjs/microservices'; import { PipelineServicesNames, PipelinesServiceInterface, } from '@victorradael/protospack'; +import { lastValueFrom } from 'rxjs'; import { objectCamelToSnake, objectSnakeToCamel, @@ -30,30 +37,15 @@ export class PipelinesClientService implements OnModuleInit { async create(@Payload() createPipelineDto: ICreatePipelineDto) { console.log('PipelinesClientService', 'Create'); - - const createPipelineResponse = await new Promise((resolve, reject) => { - this.pipelineService - .Create(objectSnakeToCamel(createPipelineDto)) - .subscribe({ - next(x) { - resolve(x); - }, - error(err) { - console.log('Observable Error'); - reject(err); - }, - complete() { - console.log('done'); - }, - }); - }) - .then((res) => res) - .catch((err) => { - if (err.details == 'Invalid Request') { - throw new HttpException(err.details, 400); - } - throw new HttpException(err.details, 500); - }); + const createPipelineResponse = await lastValueFrom( + this.pipelineService.Create(objectSnakeToCamel(createPipelineDto)), + ).catch((error: { details: string }) => { + if (error.details.includes('INVALID_REQUEST')) { + const [errorType, message] = error.details.split('|'); + throw new BadRequestException(message); + } + throw new InternalServerErrorException(error.details); + }); return createPipelineResponse; } diff --git a/src/modules/pipelines/pipelines.service.ts b/src/modules/pipelines/pipelines.service.ts index f0987f0..416ae97 100644 --- a/src/modules/pipelines/pipelines.service.ts +++ b/src/modules/pipelines/pipelines.service.ts @@ -17,19 +17,14 @@ export class PipelinesService { } async create(createPipelineDto) { - try { - const createPipelineResponse = await this.pipelineClient.create( - createPipelineDto, - ); + const createPipelineResponse = await this.pipelineClient.create( + createPipelineDto, + ); - const pipeline = objectCamelToSnake(createPipelineResponse); - this.adjustPayload(pipeline.pipeline); + const pipeline = objectCamelToSnake(createPipelineResponse); + this.adjustPayload(pipeline.pipeline); - return pipeline; - } catch (err) { - console.log(err); - throw new HttpException(err.message, HttpStatus.NOT_FOUND); - } + return pipeline; } async findOne(data: IIdRequest) {