import { Controller, Body, Logger } from "@nestjs/common"; import { EventsGateway } from "./events.gateway"; import { MessagePattern } from "@nestjs/microservices"; import { CloudEventDto } from "@ocm-engine/dtos"; import { ConfigService } from "@nestjs/config"; import { IGateway } from "@ocm-engine/config"; @Controller() export class AppController { private gatewayConfig: IGateway; private readonly logger: Logger = new Logger(AppController.name); constructor( private eventsGateway: EventsGateway, private readonly configService: ConfigService, ) { this.gatewayConfig = configService.get<IGateway>("gateway"); } @MessagePattern(process.env["GATEWAY_MESSAGE_PATTERN"]) create<T>(@Body() dto: CloudEventDto<T>): string { this.logger.debug( `received event from agent, sending to web socket ${JSON.stringify( dto, null, 2, )}`, ); this.eventsGateway.sentEvent(dto); return "ok"; } }