Skip to content

Commit 8579443

Browse files
committed
Fixed an issue with proactive conversations not working.
1 parent 426f459 commit 8579443

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

Node/core/src/bots/UniversalBot.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,18 +246,17 @@ export class UniversalBot extends events.EventEmitter {
246246
text: '',
247247
user: user
248248
};
249-
if (msg.address.conversation) {
250-
delete msg.address.conversation;
251-
}
252249
this.ensureConversation(msg.address, (adr) => {
253250
msg.address = adr;
251+
var conversationId = msg.address.conversation ? msg.address.conversation.id : null;
254252
var storageCtx: bs.IBotStorageContext = {
255253
userId: msg.user.id,
254+
conversationId: conversationId,
256255
address: msg.address,
257256
persistUserData: this.settings.persistUserData,
258257
persistConversationData: this.settings.persistConversationData
259258
};
260-
this.route(storageCtx, msg, dialogId, dialogArgs, this.errorLogger(done));
259+
this.route(storageCtx, msg, dialogId, dialogArgs, this.errorLogger(done), true);
261260
}, this.errorLogger(done));
262261
}, this.errorLogger(done));
263262
}
@@ -324,7 +323,7 @@ export class UniversalBot extends events.EventEmitter {
324323
// Helpers
325324
//-------------------------------------------------------------------------
326325

327-
private route(storageCtx: bs.IBotStorageContext, message: IMessage, dialogId: string, dialogArgs: any, done: (err: Error) => void): void {
326+
private route(storageCtx: bs.IBotStorageContext, message: IMessage, dialogId: string, dialogArgs: any, done: (err: Error) => void, newStack = false): void {
328327
// --------------------------------------------------------------------
329328
// Theory of Operation
330329
// --------------------------------------------------------------------
@@ -388,7 +387,7 @@ export class UniversalBot extends events.EventEmitter {
388387
session.conversationData = data.conversationData || {};
389388
session.privateConversationData = data.privateConversationData || {};
390389
if (session.privateConversationData.hasOwnProperty(consts.Data.SessionState)) {
391-
sessionState = session.privateConversationData[consts.Data.SessionState];
390+
sessionState = newStack ? null : session.privateConversationData[consts.Data.SessionState];
392391
delete session.privateConversationData[consts.Data.SessionState];
393392
}
394393
loadedData = data; // We'll clone it when saving data later

0 commit comments

Comments
 (0)