UNPKG

skailan-conversations

Version:

Servicio de conversaciones y mensajería para Skailan

23 lines 1.23 kB
import { Message } from '../../domain/entities/Message'; import { v4 as uuidv4 } from 'uuid'; export class CreateMessage { messageRepository; conversationRepository; constructor(messageRepository, conversationRepository) { this.messageRepository = messageRepository; this.conversationRepository = conversationRepository; } async execute(request) { const { organizationId, conversationId, senderType, senderId, type, content, mediaUrl, externalMessageId, status, timestamp } = request; const conversation = await this.conversationRepository.findById(conversationId, organizationId); if (!conversation) { throw new Error('Conversation not found.'); } const newMessage = new Message(uuidv4(), organizationId, conversationId, senderType, senderId, type, content || null, mediaUrl || null, externalMessageId || null, status || 'sent', timestamp || new Date(), new Date()); // Update conversation's lastMessageAt conversation.lastMessageAt = newMessage.timestamp; await this.conversationRepository.save(conversation); return this.messageRepository.save(newMessage); } } //# sourceMappingURL=CreateMessage.js.map