mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-16 12:12:55 -06:00
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.
This commit is contained in:
parent
ab5eb80edd
commit
666c0b514d
@ -3,7 +3,8 @@
|
|||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Retry system for send webhooks
|
* Retry system for send webhooks
|
||||||
* Enhance message filtering to support timestamp range queries
|
* Message filtering to support timestamp range queries
|
||||||
|
* Chats filtering to support timestamp range queries
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
@ -682,6 +682,13 @@ export class ChannelStartupService {
|
|||||||
where['remoteJid'] = remoteJid;
|
where['remoteJid'] = remoteJid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const timestampFilter =
|
||||||
|
query?.where?.messageTimestamp?.gte && query?.where?.messageTimestamp?.lte
|
||||||
|
? Prisma.sql`
|
||||||
|
AND "Message"."messageTimestamp" >= ${Math.floor(new Date(query.where.messageTimestamp.gte).getTime() / 1000)}
|
||||||
|
AND "Message"."messageTimestamp" <= ${Math.floor(new Date(query.where.messageTimestamp.lte).getTime() / 1000)}`
|
||||||
|
: Prisma.sql``;
|
||||||
|
|
||||||
const results = await this.prismaRepository.$queryRaw`
|
const results = await this.prismaRepository.$queryRaw`
|
||||||
WITH rankedMessages AS (
|
WITH rankedMessages AS (
|
||||||
SELECT DISTINCT ON ("Contact"."remoteJid")
|
SELECT DISTINCT ON ("Contact"."remoteJid")
|
||||||
@ -719,6 +726,7 @@ export class ChannelStartupService {
|
|||||||
"Contact"."instanceId" = ${this.instanceId}
|
"Contact"."instanceId" = ${this.instanceId}
|
||||||
AND "Message"."instanceId" = ${this.instanceId}
|
AND "Message"."instanceId" = ${this.instanceId}
|
||||||
${remoteJid ? Prisma.sql`AND "Contact"."remoteJid" = ${remoteJid}` : Prisma.sql``}
|
${remoteJid ? Prisma.sql`AND "Contact"."remoteJid" = ${remoteJid}` : Prisma.sql``}
|
||||||
|
${timestampFilter}
|
||||||
ORDER BY
|
ORDER BY
|
||||||
"Contact"."remoteJid",
|
"Contact"."remoteJid",
|
||||||
"Message"."messageTimestamp" DESC
|
"Message"."messageTimestamp" DESC
|
||||||
|
Loading…
Reference in New Issue
Block a user