import { Injectable, Input } from '@angular/core'; import { MessageLocalDataSourceService } from '../../../data/data-source/message/message-local-data-source.service'; import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer'; import { ParamsValidation } from 'src/app/services/decorators/validate-schema.decorator'; import { MessageOutPutDataDTOSchema } from '../../../data/dto/message/messageOutputDTO'; @Injectable({ providedIn: 'root' }) export class SocketMessageCreateUseCaseService { constructor( private messageLocalDataSourceService: MessageLocalDataSourceService, ) { } @XTracerAsync({name:'Socket-Message-Create-UseCase', bugPrint: true}) async execute(input: any, tracing?: TracingType) { ParamsValidation(MessageOutPutDataDTOSchema, input, tracing) const incomingMessage = { ...input, sending: false } console.log('create message', {incomingMessage}); tracing?.addEvent("Message Create start") const result = await this.messageLocalDataSourceService.createMessage(incomingMessage) tracing?.addEvent("Message Create end") if(result.isOk()) { } else { tracing?.addEvent("error while creating message") tracing.log("error while creating message", { error: result.error }) } } }