У меня есть диалоговое окно, которое подключается к MongoDB и получает результаты.В случае отсутствия результатов управление передается в другое диалоговое окно для получения действительного номера заказа.Когда диалог завершен, управление идентификатором заказа должно быть передано обратно в предыдущее диалоговое окно, но вверху диалогового окна.Как мне этого добиться?
ИЛИ Есть ли лучший способ сделать то, что я пытаюсь сделать
Диалог вызова:
bot.dialog('Get_order_id', [
function (session, args) {
if (args && args.reprompt) {
builder.Prompts.text(session, "Enter a valid order number number ")
} else {
builder.Prompts.text(session, "What's your order number?");
}
},
function (session, results) {
var m1 = new RegExp(/5-7-[0-9]{1,12}/);
var m2 = new RegExp(/1-[0-9]{1,12}/);
var matched1 = results.response.match(m1)
var matched2 = results.response.match(m2)
if (matched1 || matched2) {
session.conversationData.order_id_prospect=session.message.text;
session.endDialogWithResult({ response: session.message.text });
} else {
session.replaceDialog('Get_order_id', { reprompt: true });
}
}]);
Получить код заказа:
bot.dialog('get_order_details',[
function(session){
session.conversationData.order_id_prospect=session.conversationData.order_id_prospect.replace(/ /g,'');
var order_obj1=mongoose.model('order_mod', order_schema);
order_obj1.find({ 'ORDER_NUM': session.conversationData.order_id_prospect }, 'ORDER_NUM CREATED LAST_UPD COMPLETION_DATE APPOINTED ORDER_STATUS LINE_ITEM_STATUS KCI1_Sent KCI2_Sent KCI3_Sent CUSTOMER_REQUIRED_DATE CUSTOMER_COMMITTED_DATE ACTUAL_CCD',
function (err, athletes) {
if (err) return handleError(err);
if (!athletes.length){
// 'athletes' contains the list of athletes that match the criteria.
delete session.conversationData.order;
session.send("Order details not found. Restarting Order Status Workflow. Type Cancel to exit to MainMenu. ")
session.beginDialog('Get_order_id');
}else{
session.send('Order id: **_%s_** was last updated on **_%s_**. <br/> KCI1 Sent Date: **_%s_**',athletes[0].ORDER_NUM,athletes[0].LAST_UPD,athletes[0].KCI1_Sent);
session.endDialogWithResult({response:'order details'});
}
}).lean()
}])
enter code here