improvement: moved message creation to service

This commit is contained in:
canove
2020-10-07 12:50:01 -03:00
parent 2d7751231d
commit ffce591817
2 changed files with 49 additions and 36 deletions

View File

@@ -4,28 +4,37 @@ import ShowTicketService from "../TicketServices/ShowTicketService";
interface MessageData {
id: string;
ticketId: number;
body: string;
fromMe: boolean;
read: boolean;
mediaType: string;
contactId?: number;
vcardContactId?: number;
fromMe?: boolean;
read?: boolean;
mediaType?: string;
mediaUrl?: string;
}
interface Request {
ticketId: string | number;
messageData: MessageData;
}
const CreateMessageService = async ({
messageData,
ticketId
messageData
}: Request): Promise<Message> => {
const ticket = await ShowTicketService(ticketId);
const ticket = await ShowTicketService(messageData.ticketId);
if (!ticket) {
throw new AppError("No ticket found with this ID", 404);
}
const message: Message = await ticket.$create("message", messageData);
await Message.upsert(messageData);
const message = await Message.findByPk(messageData.id, {
include: ["contact", "vcardContact"]
});
if (!message) {
throw new AppError("Error while creating message on database.", 501);
}
return message;
};