skailan-conversations
Version:
Servicio de conversaciones y mensajería para Skailan
23 lines • 1.23 kB
JavaScript
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