mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-14 01:41:24 -06:00
Enhance message filtering in ChannelStartupService to support timestamp range queries
- Added support for filtering messages based on a timestamp range in the `ChannelStartupService`. - Introduced a `timestampFilter` object to handle `gte` and `lte` conditions for `messageTimestamp`. - Updated message count queries to include the new timestamp filtering logic.
This commit is contained in:
parent
540467293c
commit
a817d62067
@ -551,12 +551,23 @@ export class ChannelStartupService {
|
|||||||
participants?: string;
|
participants?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const timestampFilter = {};
|
||||||
|
if (query?.where?.messageTimestamp) {
|
||||||
|
if (query.where.messageTimestamp['gte'] && query.where.messageTimestamp['lte']) {
|
||||||
|
timestampFilter['messageTimestamp'] = {
|
||||||
|
gte: Math.floor(new Date(query.where.messageTimestamp['gte']).getTime() / 1000),
|
||||||
|
lte: Math.floor(new Date(query.where.messageTimestamp['lte']).getTime() / 1000),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const count = await this.prismaRepository.message.count({
|
const count = await this.prismaRepository.message.count({
|
||||||
where: {
|
where: {
|
||||||
instanceId: this.instanceId,
|
instanceId: this.instanceId,
|
||||||
id: query?.where?.id,
|
id: query?.where?.id,
|
||||||
source: query?.where?.source,
|
source: query?.where?.source,
|
||||||
messageType: query?.where?.messageType,
|
messageType: query?.where?.messageType,
|
||||||
|
...timestampFilter,
|
||||||
AND: [
|
AND: [
|
||||||
keyFilters?.id ? { key: { path: ['id'], equals: keyFilters?.id } } : {},
|
keyFilters?.id ? { key: { path: ['id'], equals: keyFilters?.id } } : {},
|
||||||
keyFilters?.fromMe ? { key: { path: ['fromMe'], equals: keyFilters?.fromMe } } : {},
|
keyFilters?.fromMe ? { key: { path: ['fromMe'], equals: keyFilters?.fromMe } } : {},
|
||||||
@ -580,6 +591,7 @@ export class ChannelStartupService {
|
|||||||
id: query?.where?.id,
|
id: query?.where?.id,
|
||||||
source: query?.where?.source,
|
source: query?.where?.source,
|
||||||
messageType: query?.where?.messageType,
|
messageType: query?.where?.messageType,
|
||||||
|
...timestampFilter,
|
||||||
AND: [
|
AND: [
|
||||||
keyFilters?.id ? { key: { path: ['id'], equals: keyFilters?.id } } : {},
|
keyFilters?.id ? { key: { path: ['id'], equals: keyFilters?.id } } : {},
|
||||||
keyFilters?.fromMe ? { key: { path: ['fromMe'], equals: keyFilters?.fromMe } } : {},
|
keyFilters?.fromMe ? { key: { path: ['fromMe'], equals: keyFilters?.fromMe } } : {},
|
||||||
|
Loading…
Reference in New Issue
Block a user