mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-15 19:52:54 -06:00
correction of messages sent by the api and typebot not appearing in chatwoot
This commit is contained in:
parent
e1ac29683d
commit
a9c087c45f
@ -9,6 +9,7 @@
|
|||||||
* Remove rabbitmq queues when delete instances
|
* Remove rabbitmq queues when delete instances
|
||||||
* Improvement in restart instance to completely redo the connection
|
* Improvement in restart instance to completely redo the connection
|
||||||
* Update node version: v20
|
* Update node version: v20
|
||||||
|
* Correction of messages sent by the api and typebot not appearing in chatwoot
|
||||||
|
|
||||||
# 1.5.2 (2023-09-28 17:56)
|
# 1.5.2 (2023-09-28 17:56)
|
||||||
|
|
||||||
|
@ -1279,7 +1279,7 @@ export class ChatwootService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event === 'messages.upsert') {
|
if (event === 'messages.upsert' || event === 'send.messages') {
|
||||||
this.logger.verbose('event messages.upsert');
|
this.logger.verbose('event messages.upsert');
|
||||||
|
|
||||||
if (body.key.remoteJid === 'status@broadcast') {
|
if (body.key.remoteJid === 'status@broadcast') {
|
||||||
|
@ -99,6 +99,7 @@ export class TypebotService {
|
|||||||
const remoteJid = data.remoteJid;
|
const remoteJid = data.remoteJid;
|
||||||
const url = data.url;
|
const url = data.url;
|
||||||
const typebot = data.typebot;
|
const typebot = data.typebot;
|
||||||
|
const startSession = data.startSession;
|
||||||
const variables = data.variables;
|
const variables = data.variables;
|
||||||
const findTypebot = await this.find(instance);
|
const findTypebot = await this.find(instance);
|
||||||
const sessions = (findTypebot.sessions as Session[]) ?? [];
|
const sessions = (findTypebot.sessions as Session[]) ?? [];
|
||||||
@ -116,37 +117,61 @@ export class TypebotService {
|
|||||||
prefilledVariables[variable.name] = variable.value;
|
prefilledVariables[variable.name] = variable.value;
|
||||||
});
|
});
|
||||||
|
|
||||||
const response = await this.createNewSession(instance, {
|
if (startSession) {
|
||||||
url: url,
|
const response = await this.createNewSession(instance, {
|
||||||
typebot: typebot,
|
url: url,
|
||||||
remoteJid: remoteJid,
|
typebot: typebot,
|
||||||
expire: expire,
|
remoteJid: remoteJid,
|
||||||
keyword_finish: keyword_finish,
|
expire: expire,
|
||||||
delay_message: delay_message,
|
keyword_finish: keyword_finish,
|
||||||
unknown_message: unknown_message,
|
delay_message: delay_message,
|
||||||
listening_from_me: listening_from_me,
|
unknown_message: unknown_message,
|
||||||
sessions: sessions,
|
listening_from_me: listening_from_me,
|
||||||
prefilledVariables: prefilledVariables,
|
sessions: sessions,
|
||||||
});
|
prefilledVariables: prefilledVariables,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.sessionId) {
|
||||||
|
await this.sendWAMessage(instance, remoteJid, response.messages, response.input, response.clientSideActions);
|
||||||
|
|
||||||
|
this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, {
|
||||||
|
remoteJid: remoteJid,
|
||||||
|
url: url,
|
||||||
|
typebot: typebot,
|
||||||
|
prefilledVariables: prefilledVariables,
|
||||||
|
sessionId: `${response.sessionId}`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
throw new Error('Session ID not found in response');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const id = Math.floor(Math.random() * 10000000000).toString();
|
||||||
|
|
||||||
|
const reqData = {
|
||||||
|
sessionId: id,
|
||||||
|
startParams: {
|
||||||
|
typebot: data.typebot,
|
||||||
|
prefilledVariables: prefilledVariables,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const request = await axios.post(data.url + '/api/v1/sendMessage', reqData);
|
||||||
|
|
||||||
if (response.sessionId) {
|
|
||||||
await this.sendWAMessage(
|
await this.sendWAMessage(
|
||||||
instance,
|
instance,
|
||||||
remoteJid,
|
remoteJid,
|
||||||
response.messages,
|
request.data.messages,
|
||||||
response.input,
|
request.data.input,
|
||||||
response.clientSideActions,
|
request.data.clientSideActions,
|
||||||
);
|
);
|
||||||
|
|
||||||
this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, {
|
this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, {
|
||||||
remoteJid: remoteJid,
|
remoteJid: remoteJid,
|
||||||
url: url,
|
url: url,
|
||||||
typebot: typebot,
|
typebot: typebot,
|
||||||
prefilledVariables: prefilledVariables,
|
variables: variables,
|
||||||
sessionId: `${response.sessionId}`,
|
sessionId: id,
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
throw new Error("Session ID not found in response");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -227,7 +252,7 @@ export class TypebotService {
|
|||||||
remoteJid: data.remoteJid,
|
remoteJid: data.remoteJid,
|
||||||
pushName: data.pushName || 'Default Name',
|
pushName: data.pushName || 'Default Name',
|
||||||
instanceName: instance.instanceName,
|
instanceName: instance.instanceName,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const typebotData = {
|
const typebotData = {
|
||||||
|
@ -40,6 +40,7 @@ import EventEmitter2 from 'eventemitter2';
|
|||||||
import fs, { existsSync, readFileSync } from 'fs';
|
import fs, { existsSync, readFileSync } from 'fs';
|
||||||
import Long from 'long';
|
import Long from 'long';
|
||||||
import NodeCache from 'node-cache';
|
import NodeCache from 'node-cache';
|
||||||
|
import { getMIMEType } from 'node-mime-types';
|
||||||
import { release } from 'os';
|
import { release } from 'os';
|
||||||
import { join } from 'path';
|
import { join } from 'path';
|
||||||
import P from 'pino';
|
import P from 'pino';
|
||||||
@ -2387,12 +2388,16 @@ export class WAStartupService {
|
|||||||
|
|
||||||
if (mediaMessage.mediatype === 'image' && !mediaMessage.fileName) {
|
if (mediaMessage.mediatype === 'image' && !mediaMessage.fileName) {
|
||||||
mediaMessage.fileName = 'image.png';
|
mediaMessage.fileName = 'image.png';
|
||||||
mimetype = 'image/png';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaMessage.mediatype === 'video' && !mediaMessage.fileName) {
|
if (mediaMessage.mediatype === 'video' && !mediaMessage.fileName) {
|
||||||
mediaMessage.fileName = 'video.mp4';
|
mediaMessage.fileName = 'video.mp4';
|
||||||
mimetype = 'video/mp4';
|
}
|
||||||
|
|
||||||
|
if (isURL(mediaMessage.media)) {
|
||||||
|
mimetype = getMIMEType(mediaMessage.media);
|
||||||
|
} else {
|
||||||
|
mimetype = getMIMEType(mediaMessage.fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger.verbose('Mimetype: ' + mimetype);
|
this.logger.verbose('Mimetype: ' + mimetype);
|
||||||
|
Loading…
Reference in New Issue
Block a user