FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

fix: in error catch in createNewSession · gitsofian/evolution-api@f710898 · GitHub

Commit f710898

Browse files
fix: in error catch in createNewSession
1 parent 0817c25 commit f710898

2 files changed

Lines changed: 78 additions & 44 deletions

File tree

‎.vscode/settings.json‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@
77
"editor.codeActionsOnSave": {
88
"source.fixAll.eslint": true,
99
"source.fixAll": true
10-
}
10+
},
11+
"prisma-smart-formatter.typescript.defaultFormatter": "esbenp.prettier-vscode",
12+
"prisma-smart-formatter.prisma.defaultFormatter": "Prisma.prisma"
1113
}

‎src/whatsapp/services/typebot.service.ts‎

Lines changed: 75 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class TypebotService {
4747
findData.sessions.splice(findData.sessions.indexOf(session), 1);
4848

4949
const typebotData = {
50-
enabled: true,
50+
enabled: findData.enabled,
5151
url: findData.url,
5252
typebot: findData.typebot,
5353
expire: findData.expire,
@@ -71,7 +71,7 @@ export class TypebotService {
7171
}
7272

7373
const typebotData = {
74-
enabled: true,
74+
enabled: findData.enabled,
7575
url: findData.url,
7676
typebot: findData.typebot,
7777
expire: findData.expire,
@@ -104,7 +104,6 @@ export class TypebotService {
104104
const startSession = data.startSession;
105105
const variables = data.variables;
106106
const findTypebot = await this.find(instance);
107-
const sessions = (findTypebot.sessions as Session[]) ?? [];
108107
const expire = findTypebot.expire;
109108
const keyword_finish = findTypebot.keyword_finish;
110109
const delay_message = findTypebot.delay_message;
@@ -116,12 +115,17 @@ export class TypebotService {
116115
instanceName: instance.instanceName,
117116
};
118117

119-
variables.forEach((variable) => {
120-
prefilledVariables[variable.name] = variable.value;
121-
});
118+
if (variables?.length) {
119+
variables.forEach((variable: { name: string | number; value: string }) => {
120+
prefilledVariables[variable.name] = variable.value;
121+
});
122+
}
122123

123124
if (startSession) {
125+
const newSessions = await this.clearSessions(instance, remoteJid);
126+
124127
const response = await this.createNewSession(instance, {
128+
enabled: findTypebot.enabled,
125129
url: url,
126130
typebot: typebot,
127131
remoteJid: remoteJid,
@@ -130,7 +134,7 @@ export class TypebotService {
130134
delay_message: delay_message,
131135
unknown_message: unknown_message,
132136
listening_from_me: listening_from_me,
133-
sessions: sessions,
137+
sessions: newSessions,
134138
prefilledVariables: prefilledVariables,
135139
});
136140

@@ -246,45 +250,74 @@ export class TypebotService {
246250
},
247251
};
248252

249-
let request: any;
250253
try {
251-
request = await axios.post(data.url + '/api/v1/sendMessage', reqData);
254+
const request = await axios.post(data.url + '/api/v1/sendMessage', reqData);
255+
256+
if (request?.data?.sessionId) {
257+
data.sessions.push({
258+
remoteJid: data.remoteJid,
259+
sessionId: `${id}-${request.data.sessionId}`,
260+
status: 'opened',
261+
createdAt: Date.now(),
262+
updateAt: Date.now(),
263+
prefilledVariables: {
264+
...data.prefilledVariables,
265+
remoteJid: data.remoteJid,
266+
pushName: data.pushName || '',
267+
instanceName: instance.instanceName,
268+
},
269+
});
270+
271+
const typebotData = {
272+
enabled: data.enabled,
273+
url: data.url,
274+
typebot: data.typebot,
275+
expire: data.expire,
276+
keyword_finish: data.keyword_finish,
277+
delay_message: data.delay_message,
278+
unknown_message: data.unknown_message,
279+
listening_from_me: data.listening_from_me,
280+
sessions: data.sessions,
281+
};
282+
283+
this.create(instance, typebotData);
284+
}
285+
return request.data;
252286
} catch (error) {
253287
this.logger.error(error);
254288
return;
255289
}
290+
}
256291

257-
if (request?.data?.sessionId) {
258-
data.sessions.push({
259-
remoteJid: data.remoteJid,
260-
sessionId: `${id}-${request.data.sessionId}`,
261-
status: 'opened',
262-
createdAt: Date.now(),
263-
updateAt: Date.now(),
264-
prefilledVariables: {
265-
...data.prefilledVariables,
266-
remoteJid: data.remoteJid,
267-
pushName: data.pushName || '',
268-
instanceName: instance.instanceName,
269-
},
292+
public async clearSessions(instance: InstanceDto, remoteJid: string) {
293+
const findTypebot = await this.find(instance);
294+
const sessions = (findTypebot.sessions as Session[]) ?? [];
295+
296+
const sessionWithRemoteJid = sessions.filter((session) => session.remoteJid === remoteJid);
297+
298+
if (sessionWithRemoteJid.length > 0) {
299+
sessionWithRemoteJid.forEach((session) => {
300+
sessions.splice(sessions.indexOf(session), 1);
270301
});
271302

272303
const typebotData = {
273-
enabled: true,
274-
url: data.url,
275-
typebot: data.typebot,
276-
expire: data.expire,
277-
keyword_finish: data.keyword_finish,
278-
delay_message: data.delay_message,
279-
unknown_message: data.unknown_message,
280-
listening_from_me: data.listening_from_me,
281-
sessions: data.sessions,
304+
enabled: findTypebot.enabled,
305+
url: findTypebot.url,
306+
typebot: findTypebot.typebot,
307+
expire: findTypebot.expire,
308+
keyword_finish: findTypebot.keyword_finish,
309+
delay_message: findTypebot.delay_message,
310+
unknown_message: findTypebot.unknown_message,
311+
listening_from_me: findTypebot.listening_from_me,
312+
sessions,
282313
};
283314

284315
this.create(instance, typebotData);
316+
317+
return sessions;
285318
}
286319

287-
return request.data;
320+
return sessions;
288321
}
289322

290323
public async sendWAMessage(
@@ -457,17 +490,18 @@ export class TypebotService {
457490
const diffInMinutes = Math.floor(diff / 1000 / 60);
458491

459492
if (diffInMinutes > expire) {
460-
sessions.splice(sessions.indexOf(session), 1);
493+
const newSessions = await this.clearSessions(instance, remoteJid);
461494

462495
const data = await this.createNewSession(instance, {
496+
enabled: findTypebot.enabled,
463497
url: url,
464498
typebot: typebot,
465499
expire: expire,
466500
keyword_finish: keyword_finish,
467501
delay_message: delay_message,
468502
unknown_message: unknown_message,
469503
listening_from_me: listening_from_me,
470-
sessions: sessions,
504+
sessions: newSessions,
471505
remoteJid: remoteJid,
472506
pushName: msg.pushName,
473507
});
@@ -494,18 +528,18 @@ export class TypebotService {
494528
}
495529

496530
if (keyword_finish && content.toLowerCase() === keyword_finish.toLowerCase()) {
497-
sessions.splice(sessions.indexOf(session), 1);
531+
const newSessions = await this.clearSessions(instance, remoteJid);
498532

499533
const typebotData = {
500-
enabled: true,
534+
enabled: findTypebot.enabled,
501535
url: url,
502536
typebot: typebot,
503537
expire: expire,
504538
keyword_finish: keyword_finish,
505539
delay_message: delay_message,
506540
unknown_message: unknown_message,
507541
listening_from_me: listening_from_me,
508-
sessions,
542+
sessions: newSessions,
509543
};
510544

511545
this.create(instance, typebotData);
@@ -521,7 +555,6 @@ export class TypebotService {
521555
try {
522556
const request = await axios.post(url + '/api/v1/sendMessage', reqData);
523557

524-
console.log('request', request);
525558
await this.sendWAMessage(
526559
instance,
527560
remoteJid,
@@ -545,6 +578,7 @@ export class TypebotService {
545578

546579
if (!session) {
547580
const data = await this.createNewSession(instance, {
581+
enabled: findTypebot.enabled,
548582
url: url,
549583
typebot: typebot,
550584
expire: expire,
@@ -582,7 +616,7 @@ export class TypebotService {
582616
sessions.splice(sessions.indexOf(session), 1);
583617

584618
const typebotData = {
585-
enabled: true,
619+
enabled: findTypebot.enabled,
586620
url: url,
587621
typebot: typebot,
588622
expire: expire,
@@ -606,8 +640,6 @@ export class TypebotService {
606640
let request: any;
607641
try {
608642
request = await axios.post(url + '/api/v1/sendMessage', reqData);
609-
610-
console.log('request', request);
611643
await this.sendWAMessage(
612644
instance,
613645
remoteJid,
@@ -630,7 +662,7 @@ export class TypebotService {
630662
});
631663

632664
const typebotData = {
633-
enabled: true,
665+
enabled: findTypebot.enabled,
634666
url: url,
635667
typebot: typebot,
636668
expire: expire,
@@ -665,7 +697,7 @@ export class TypebotService {
665697
sessions.splice(sessions.indexOf(session), 1);
666698

667699
const typebotData = {
668-
enabled: true,
700+
enabled: findTypebot.enabled,
669701
url: url,
670702
typebot: typebot,
671703
expire: expire,

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL