fix: start session

This commit is contained in:
Davidson Gomes 2023-10-24 13:16:35 -03:00
parent cc9df1dabb
commit d8629e53f1

View File

@ -47,7 +47,7 @@ export class TypebotService {
findData.sessions.splice(findData.sessions.indexOf(session), 1);
const typebotData = {
enabled: true,
enabled: findData.enabled,
url: findData.url,
typebot: findData.typebot,
expire: findData.expire,
@ -71,7 +71,7 @@ export class TypebotService {
}
const typebotData = {
enabled: true,
enabled: findData.enabled,
url: findData.url,
typebot: findData.typebot,
expire: findData.expire,
@ -102,7 +102,6 @@ export class TypebotService {
const startSession = data.startSession;
const variables = data.variables;
const findTypebot = await this.find(instance);
const sessions = (findTypebot.sessions as Session[]) ?? [];
const expire = findTypebot.expire;
const keyword_finish = findTypebot.keyword_finish;
const delay_message = findTypebot.delay_message;
@ -121,13 +120,10 @@ export class TypebotService {
}
if (startSession) {
const session = sessions.find((session) => session.remoteJid === remoteJid);
if (session) {
sessions.splice(sessions.indexOf(session), 1);
}
const newSessions = await this.clearSessions(instance, remoteJid);
const response = await this.createNewSession(instance, {
enabled: findTypebot.enabled,
url: url,
typebot: typebot,
remoteJid: remoteJid,
@ -136,7 +132,7 @@ export class TypebotService {
delay_message: delay_message,
unknown_message: unknown_message,
listening_from_me: listening_from_me,
sessions: sessions,
sessions: newSessions,
prefilledVariables: prefilledVariables,
});
@ -263,7 +259,7 @@ export class TypebotService {
});
const typebotData = {
enabled: true,
enabled: data.enabled,
url: data.url,
typebot: data.typebot,
expire: data.expire,
@ -280,6 +276,37 @@ export class TypebotService {
return request.data;
}
public async clearSessions(instance: InstanceDto, remoteJid: string) {
const findTypebot = await this.find(instance);
const sessions = (findTypebot.sessions as Session[]) ?? [];
const sessionWithRemoteJid = sessions.filter((session) => session.remoteJid === remoteJid);
if (sessionWithRemoteJid.length > 0) {
sessionWithRemoteJid.forEach((session) => {
sessions.splice(sessions.indexOf(session), 1);
});
const typebotData = {
enabled: findTypebot.enabled,
url: findTypebot.url,
typebot: findTypebot.typebot,
expire: findTypebot.expire,
keyword_finish: findTypebot.keyword_finish,
delay_message: findTypebot.delay_message,
unknown_message: findTypebot.unknown_message,
listening_from_me: findTypebot.listening_from_me,
sessions,
};
this.create(instance, typebotData);
return sessions;
}
return sessions;
}
public async sendWAMessage(
instance: InstanceDto,
remoteJid: string,
@ -450,9 +477,10 @@ export class TypebotService {
const diffInMinutes = Math.floor(diff / 1000 / 60);
if (diffInMinutes > expire) {
sessions.splice(sessions.indexOf(session), 1);
const newSessions = await this.clearSessions(instance, remoteJid);
const data = await this.createNewSession(instance, {
enabled: findTypebot.enabled,
url: url,
typebot: typebot,
expire: expire,
@ -460,7 +488,7 @@ export class TypebotService {
delay_message: delay_message,
unknown_message: unknown_message,
listening_from_me: listening_from_me,
sessions: sessions,
sessions: newSessions,
remoteJid: remoteJid,
pushName: msg.pushName,
});
@ -487,7 +515,7 @@ export class TypebotService {
}
if (keyword_finish && content.toLowerCase() === keyword_finish.toLowerCase()) {
sessions.splice(sessions.indexOf(session), 1);
const newSessions = await this.clearSessions(instance, remoteJid);
const typebotData = {
enabled: true,
@ -498,7 +526,7 @@ export class TypebotService {
delay_message: delay_message,
unknown_message: unknown_message,
listening_from_me: listening_from_me,
sessions,
sessions: newSessions,
};
this.create(instance, typebotData);
@ -513,7 +541,6 @@ export class TypebotService {
const request = await axios.post(url + '/api/v1/sendMessage', reqData);
console.log('request', request);
await this.sendWAMessage(
instance,
remoteJid,
@ -533,6 +560,7 @@ export class TypebotService {
if (!session) {
const data = await this.createNewSession(instance, {
enabled: findTypebot.enabled,
url: url,
typebot: typebot,
expire: expire,
@ -593,7 +621,6 @@ export class TypebotService {
const request = await axios.post(url + '/api/v1/sendMessage', reqData);
console.log('request', request);
await this.sendWAMessage(
instance,
remoteJid,