import { Controller, Delete, Get, OnModuleInit, Param, Post, Put } from '@nestjs/common'; import { Client, ClientGrpc, MessagePattern, Payload } from '@nestjs/microservices'; import { PipelineGrpcClientService } from './pipelines.service'; import { CreatePipelineDto } from './dto/create-pipeline.dto'; import { UpdatePipelineDto } from './dto/update-pipeline.dto'; import { GrpcClientConfiguration } from './config/grpc-client'; import { ApiTags } from '@nestjs/swagger'; @ApiTags('pipelines') @Controller('pipeline') export class PipelinesController implements OnModuleInit{ @Client(GrpcClientConfiguration) private pipelineServiceClient: ClientGrpc; private pipelineService: PipelineGrpcClientService; onModuleInit() { this.pipelineService = this.pipelineServiceClient.getService('PipelineService'); } @Post() create(@Payload() createPipelineDto: CreatePipelineDto) { return this.pipelineService.create(createPipelineDto); } @Get() list() { return this.pipelineService.list(); } @Get(':id') show(@Param() id: string) { return this.pipelineService.show(id); } @Put(':id') update(@Param() id:string,@Payload() updatePipelineDto: UpdatePipelineDto) { return this.pipelineService.update(id, updatePipelineDto); } @Delete() remove(@Param() id:string) { return this.pipelineService.remove(id); } @Post() getPipelineLogsMessages(@Param() id:string,@Payload() details:string){ return this.pipelineService.getPipelineLogsMessages(id,details); } getPipelineStatus(id:string){ return this.pipelineService.getPipelineStatus(id) } }