Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | import { Body, Controller, Inject, Post } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger'; import { EventTypeEnum, KAFKA_SERVICE_TOKEN, RABBITMQ_SERVICE_TOKEN } from '../shared/event.const'; import { EmitMessageDto } from '../shared/event.dto'; import { IKafkaService, IRabbitMQService } from '../shared/event.interface'; @ApiTags('Event') @Controller({ path: 'api/event' }) export class EventApiController { constructor( private readonly eventEmitter: EventEmitter2, @Inject(RABBITMQ_SERVICE_TOKEN) private readonly rabbitMQService: IRabbitMQService, @Inject(KAFKA_SERVICE_TOKEN) private readonly kafkaService: IKafkaService, ) {} @Post('emit-message') @ApiOperation({ operationId: 'emitMessage', summary: 'Emit a sample message.', }) @ApiBody({ description: EmitMessageDto.name, type: EmitMessageDto, }) emitMessage(@Body() body: EmitMessageDto) { this.eventEmitter.emit(EventTypeEnum.Base, body); return 'message sent.'; } @Post('rabbitmq/emit-message') @ApiOperation({ operationId: 'rabbitmqEmitMessage', summary: 'Emit a sample message to RabbitMQ.', }) @ApiBody({ description: EmitMessageDto.name, type: EmitMessageDto, }) async rabbitmqEmitMessage(@Body() body: EmitMessageDto) { await this.rabbitMQService.emitMessage(body); return 'message sent.'; } @Post('kafka/emit-message') @ApiOperation({ operationId: 'kafkaEmitMessage', summary: 'Emit a sample message to Kafka.', }) @ApiBody({ description: EmitMessageDto.name, type: EmitMessageDto, }) async kafkaEmitMessage(@Body() body: EmitMessageDto) { await this.kafkaService.emitMessage(body); return 'message sent.'; } } |