Merge pull request #1743 from foqc/foqc/develop
Some checks are pending
Build Docker image / Build and Deploy (push) Waiting to run

Add  endpoint to retrieve chat data by remoteJid
This commit is contained in:
Davidson Gomes 2025-07-21 16:13:59 -03:00 committed by GitHub
commit 9b7ca4bfb7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 0 deletions

View File

@ -70,6 +70,10 @@ export class ChatController {
return await this.waMonitor.waInstances[instanceName].fetchChats(query);
}
public async findChatByRemoteJid({ instanceName }: InstanceDto, remoteJid: string) {
return await this.waMonitor.waInstances[instanceName].findChatByRemoteJid(remoteJid);
}
public async sendPresence({ instanceName }: InstanceDto, data: SendPresenceDto) {
return await this.waMonitor.waInstances[instanceName].sendPresence(data);
}

View File

@ -191,6 +191,16 @@ export class ChatRouter extends RouterBroker {
return res.status(HttpStatus.OK).json(response);
})
.get(this.routerPath('findChatByRemoteJid'), ...guards, async (req, res) => {
const instance = req.params as unknown as InstanceDto;
const { remoteJid } = req.query as unknown as { remoteJid: string };
if (!remoteJid) {
return res.status(HttpStatus.BAD_REQUEST).json({ error: 'remoteJid is a required query parameter' });
}
const response = await chatController.findChatByRemoteJid(instance, remoteJid);
return res.status(HttpStatus.OK).json(response);
})
// Profile routes
.post(this.routerPath('fetchBusinessProfile'), ...guards, async (req, res) => {
const response = await this.dataValidate<ProfilePictureDto>({

View File

@ -696,6 +696,16 @@ export class ChannelStartupService {
});
}
public async findChatByRemoteJid(remoteJid: string) {
if (!remoteJid) return null;
return await this.prismaRepository.chat.findFirst({
where: {
instanceId: this.instanceId,
remoteJid: remoteJid,
},
});
}
public async fetchChats(query: any) {
const remoteJid = query?.where?.remoteJid
? query?.where?.remoteJid.includes('@')