Skip to content

Commit 666c0b5

Browse files
committed
Chats filtering to support timestamp range queries
- Introduced a new `timestampFilter` to allow filtering messages based on `messageTimestamp` within specified `gte` and `lte` ranges. - Updated SQL query logic in `ChannelStartupService` to incorporate the timestamp filtering, improving message retrieval accuracy.
1 parent ab5eb80 commit 666c0b5

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
### Features
44

55
* Retry system for send webhooks
6-
* Enhance message filtering to support timestamp range queries
6+
* Message filtering to support timestamp range queries
7+
* Chats filtering to support timestamp range queries
78

89
### Fixed
910

src/api/services/channel.service.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -682,6 +682,13 @@ export class ChannelStartupService {
682682
where['remoteJid'] = remoteJid;
683683
}
684684

685+
const timestampFilter =
686+
query?.where?.messageTimestamp?.gte && query?.where?.messageTimestamp?.lte
687+
? Prisma.sql`
688+
AND "Message"."messageTimestamp" >= ${Math.floor(new Date(query.where.messageTimestamp.gte).getTime() / 1000)}
689+
AND "Message"."messageTimestamp" <= ${Math.floor(new Date(query.where.messageTimestamp.lte).getTime() / 1000)}`
690+
: Prisma.sql``;
691+
685692
const results = await this.prismaRepository.$queryRaw`
686693
WITH rankedMessages AS (
687694
SELECT DISTINCT ON ("Contact"."remoteJid")
@@ -719,6 +726,7 @@ export class ChannelStartupService {
719726
"Contact"."instanceId" = ${this.instanceId}
720727
AND "Message"."instanceId" = ${this.instanceId}
721728
${remoteJid ? Prisma.sql`AND "Contact"."remoteJid" = ${remoteJid}` : Prisma.sql``}
729+
${timestampFilter}
722730
ORDER BY
723731
"Contact"."remoteJid",
724732
"Message"."messageTimestamp" DESC

0 commit comments

Comments
 (0)