Skip to content

Commit 333ef3e

Browse files
committed
feature: Correctly map SQL query results by enforcing quoted column aliases
1 parent 3960624 commit 333ef3e

File tree

1 file changed

+34
-39
lines changed

1 file changed

+34
-39
lines changed

src/api/services/channel.service.ts

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -738,22 +738,23 @@ export class ChannelStartupService {
738738
"Chat"."name" as "pushName",
739739
"Chat"."createdAt" as "windowStart",
740740
"Chat"."createdAt" + INTERVAL '24 hours' as "windowExpires",
741+
"Chat"."unreadMessages" as "unreadMessages",
741742
CASE WHEN "Chat"."createdAt" + INTERVAL '24 hours' > NOW() THEN true ELSE false END as "windowActive",
742-
"Message"."id" AS lastMessageId,
743-
"Message"."key" AS lastMessage_key,
743+
"Message"."id" AS "lastMessageId",
744+
"Message"."key" AS "lastMessage_key",
744745
CASE
745746
WHEN "Message"."key"->>'fromMe' = 'true' THEN 'Você'
746747
ELSE "Message"."pushName"
747-
END AS lastMessagePushName,
748-
"Message"."participant" AS lastMessageParticipant,
749-
"Message"."messageType" AS lastMessageMessageType,
750-
"Message"."message" AS lastMessageMessage,
751-
"Message"."contextInfo" AS lastMessageContextInfo,
752-
"Message"."source" AS lastMessageSource,
753-
"Message"."messageTimestamp" AS lastMessageMessageTimestamp,
754-
"Message"."instanceId" AS lastMessageInstanceId,
755-
"Message"."sessionId" AS lastMessageSessionId,
756-
"Message"."status" AS lastMessageStatus
748+
END AS "lastMessagePushName",
749+
"Message"."participant" AS "lastMessageParticipant",
750+
"Message"."messageType" AS "lastMessageMessageType",
751+
"Message"."message" AS "lastMessageMessage",
752+
"Message"."contextInfo" AS "lastMessageContextInfo",
753+
"Message"."source" AS "lastMessageSource",
754+
"Message"."messageTimestamp" AS "lastMessageMessageTimestamp",
755+
"Message"."instanceId" AS "lastMessageInstanceId",
756+
"Message"."sessionId" AS "lastMessageSessionId",
757+
"Message"."status" AS "lastMessageStatus"
757758
FROM "Message"
758759
LEFT JOIN "Contact" ON "Contact"."remoteJid" = "Message"."key"->>'remoteJid' AND "Contact"."instanceId" = "Message"."instanceId"
759760
LEFT JOIN "Chat" ON "Chat"."remoteJid" = "Message"."key"->>'remoteJid' AND "Chat"."instanceId" = "Message"."instanceId"
@@ -770,44 +771,38 @@ export class ChannelStartupService {
770771

771772
if (results && isArray(results) && results.length > 0) {
772773
const mappedResults = results.map((contact) => {
773-
const lastMessage = contact.lastmessageid
774+
const lastMessage = contact.lastMessageId
774775
? {
775-
id: contact.lastmessageid,
776-
key: contact.lastmessage_key,
777-
pushName: contact.lastmessagepushname,
778-
participant: contact.lastmessageparticipant,
779-
messageType: contact.lastmessagemessagetype,
780-
message: contact.lastmessagemessage,
781-
contextInfo: contact.lastmessagecontextinfo,
782-
source: contact.lastmessagesource,
783-
messageTimestamp: contact.lastmessagemessagetimestamp,
784-
instanceId: contact.lastmessageinstanceid,
785-
sessionId: contact.lastmessagesessionid,
786-
status: contact.lastmessagestatus,
776+
id: contact.lastMessageId,
777+
key: contact.lastMessage_key,
778+
pushName: contact.lastMessagePushName,
779+
participant: contact.lastMessageParticipant,
780+
messageType: contact.lastMessageMessageType,
781+
message: contact.lastMessageMessage,
782+
contextInfo: contact.lastMessageContextInfo,
783+
source: contact.lastMessageSource,
784+
messageTimestamp: contact.lastMessageMessageTimestamp,
785+
instanceId: contact.lastMessageInstanceId,
786+
sessionId: contact.lastMessageSessionId,
787+
status: contact.lastMessageStatus,
787788
}
788789
: undefined;
789790

790791
return {
791-
id: contact.contactid || null,
792-
remoteJid: contact.remotejid,
793-
pushName: contact.pushname,
794-
profilePicUrl: contact.profilepicurl,
792+
id: contact.contactId || null,
793+
remoteJid: contact.remoteJid,
794+
pushName: contact.pushName,
795+
profilePicUrl: contact.profilePicUrl,
795796
updatedAt: contact.updatedat,
796797
windowStart: contact.windowstart,
797-
windowExpires: contact.windowexpires,
798-
windowActive: contact.windowactive,
798+
windowExpires: contact.windowExpires,
799+
windowActive: contact.windowActive,
799800
lastMessage: lastMessage ? this.cleanMessageData(lastMessage) : undefined,
800-
unreadCount: 0,
801-
isSaved: !!contact.contactid,
801+
unreadCount: contact.unreadMessages,
802+
isSaved: !!contact.contactId,
802803
};
803804
});
804805

805-
if (query?.take && query?.skip) {
806-
const skip = query.skip || 0;
807-
const take = query.take || 20;
808-
return mappedResults.slice(skip, skip + take);
809-
}
810-
811806
return mappedResults;
812807
}
813808

0 commit comments

Comments
 (0)