Built motion from commit f7863d46.|2.5.41
[motion2.git] / server / services / routing / server / applications / dialogflowV2.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x37cb=['../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','Message','then','info','catch','error','[%s][DIALOGFLOWV2]\x20%s','consequence','isNil','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','whatsapp','phone','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','create','stringify','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','replace','SessionsClient','message','detectIntent','length','dialogflowV2','diagnosticInfo','queryResult','fields','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','end_conversation','DIALOGFLOWV2_INTENTNAME','intent','name','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','fulfillmentText','push','all','lodash','dialogflow','md5','moment','bluebird','../../../../config/logger','routing'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x37cb,0x12d));var _0xb37c=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x37cb[_0x27af45];return _0x18df21;};'use strict';var _=require(_0xb37c('0x0'));var dialogflow=require(_0xb37c('0x1'));var md5=require(_0xb37c('0x2'));var moment=require(_0xb37c('0x3'));var Promise=require(_0xb37c('0x4'));var logger=require(_0xb37c('0x5'))(_0xb37c('0x6'));var utils=require('./utils');var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0xb37c('0x7')),'mailMessage':require(_0xb37c('0x8')),'smsMessage':require(_0xb37c('0x9')),'faxMessage':require(_0xb37c('0xa')),'whatsappMessage':require(_0xb37c('0xb'))};function createMessage(_0x2b0c24,_0x3d051b,_0x2f4b5a,_0x2b0f22){return new Promise(function(_0x4c2317,_0x33f13b){var _0x37dd1a=_[_0xb37c('0xc')](_0x2f4b5a);_0x37dd1a[_0xb37c('0xd')]=_0x2b0f22;return rpc[_0x3d051b+_0xb37c('0xe')]['create'](_0x37dd1a)[_0xb37c('0xf')](function(){logger[_0xb37c('0x10')]('[%s][DIALOGFLOWV2]\x20%s',_0x2b0c24,_0x37dd1a['body']);_0x4c2317();})[_0xb37c('0x11')](function(_0x454910){logger[_0xb37c('0x12')](_0xb37c('0x13'),_0x2b0c24,JSON['stringify'](_0x454910));_0x33f13b(_0x454910);});});}exports[_0xb37c('0x14')]=function(_0x897843,_0x5d2939){return function(_0x41e9e3){try{if(!_[_0xb37c('0x15')](this[_0xb37c('0x16')][_0xb37c('0x17')])){logger[_0xb37c('0x10')](_0xb37c('0x13'),_0x897843,_0xb37c('0x18'));return _0x41e9e3[_0xb37c('0x19')]();}var _0x4a3e68={'ContactId':this[_0xb37c('0x1a')]['id'],'sentAt':moment()[_0xb37c('0x1b')](_0xb37c('0x1c')),'direction':_0xb37c('0x1d')};if(this[_0xb37c('0x1e')]==='sms'||this[_0xb37c('0x1e')]===_0xb37c('0x1f')){_0x4a3e68[_0xb37c('0x20')]=this['interaction'][_0xb37c('0x20')];}var _0x4a8c23=this['channel'];if(_0x4a8c23==='chat'){_0x4a3e68[_0xb37c('0x21')]=this[_0xb37c('0x22')]['id'];}else{_0x4a3e68[_[_0xb37c('0x23')](_0x4a8c23)+_0xb37c('0x24')]=this[_0xb37c('0x22')]['id'];}_0x4a3e68[_[_0xb37c('0x23')](_0x4a8c23)+_0xb37c('0x25')]=this[_0xb37c('0x16')]['id'];if(this['interaction'][_0xb37c('0x26')]){var _0x3afe13=_0x5d2939[0x4];if(!_[_0xb37c('0x27')](_0x3afe13)){_0x4a3e68[_0xb37c('0xd')]=utils['getMustacheRender'](_0x3afe13,this);return rpc[_0x4a8c23+_0xb37c('0xe')][_0xb37c('0x28')](_0x4a3e68)[_0xb37c('0xf')](function(_0x5a66c8){logger[_0xb37c('0x10')](_0xb37c('0x13'),_0x897843,_0x4a3e68[_0xb37c('0xd')]);})[_0xb37c('0x11')](function(_0x38ae9d){logger[_0xb37c('0x12')](_0xb37c('0x13'),_0x897843,JSON[_0xb37c('0x29')](_0x38ae9d));})[_0xb37c('0x2a')](function(){logger[_0xb37c('0x10')](_0xb37c('0x2b'),_0x897843);_0x41e9e3['stop']();});}else{logger[_0xb37c('0x10')](_0xb37c('0x2c'),_0x897843);_0x41e9e3[_0xb37c('0x2d')]();}}else{var _0x4f053f=this;var _0x2172c8=_0x5d2939[0x2][_0xb37c('0x2e')](/\\n/g,'\x0a');var _0x512248={'credentials':{'private_key':_0x2172c8,'client_email':_0x5d2939[0x1]}};var _0x10fe96=new dialogflow[(_0xb37c('0x2f'))](_0x512248);var _0x1b73f2=_0x10fe96['sessionPath'](_0x5d2939[0x0],md5(_0x4f053f['interaction']['id']));var _0x11a73c={'session':_0x1b73f2,'queryInput':{'text':{'text':_0x4f053f[_0xb37c('0x30')][_0xb37c('0xd')],'languageCode':_0x5d2939[0x3]||'en'}}};return _0x10fe96[_0xb37c('0x31')](_0x11a73c)[_0xb37c('0xf')](function(_0x267627){if(_0x267627&&_0x267627[_0xb37c('0x32')]){_0x4f053f[_0xb37c('0xd')][_0xb37c('0x33')]=_0x267627;var _0x41ea26=_0x267627[0x0];var _0x2ce008=_0x41ea26['queryResult'][_0xb37c('0x34')]&&_0x41ea26[_0xb37c('0x35')][_0xb37c('0x34')][_0xb37c('0x36')]?_0x41ea26[_0xb37c('0x35')][_0xb37c('0x34')]['fields']['end_conversation']['boolValue']:![];_0x4f053f[_0xb37c('0xd')][_0xb37c('0x37')]=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x38')];_0x4f053f['body'][_0xb37c('0x39')]=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x3a')];_0x4f053f[_0xb37c('0xd')][_0xb37c('0x3b')]=_0x41ea26['queryResult']['diagnosticInfo']&&_0x41ea26[_0xb37c('0x35')]['diagnosticInfo'][_0xb37c('0x36')]?_0x41ea26[_0xb37c('0x35')][_0xb37c('0x34')][_0xb37c('0x36')][_0xb37c('0x3c')]['boolValue']:![];_0x4f053f[_0xb37c('0xd')][_0xb37c('0x3d')]=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x3e')][_0xb37c('0x3f')];_0x4f053f['body']['DIALOGFLOWV2_INTENTDISPLAYNAME']=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x3e')][_0xb37c('0x40')];_0x4f053f[_0xb37c('0xd')][_0xb37c('0x41')]=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x3e')][_0xb37c('0x42')];_0x4f053f[_0xb37c('0xd')]['DIALOGFLOWV2_LANGUAGECODE']=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x43')];_0x4f053f[_0xb37c('0xd')][_0xb37c('0x44')]=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x45')];_0x4f053f[_0xb37c('0xd')][_0xb37c('0x46')]=_0x41ea26[_0xb37c('0x35')][_0xb37c('0x47')];_0x4a3e68[_0xb37c('0x48')]=_0xb37c('0x33');_0x4a3e68[_0xb37c('0x49')]=JSON['stringify'](_0x267627);var _0x42c2e3=[];for(var _0x3f3202=0x0;_0x3f3202<_0x267627[_0xb37c('0x32')];_0x3f3202++){var _0x56c34b=_0x267627[_0x3f3202];if(_0x56c34b&&_0x56c34b[_0xb37c('0x35')]&&_0x56c34b[_0xb37c('0x35')][_0xb37c('0x4a')]){_0x42c2e3[_0xb37c('0x4b')](createMessage(_0x897843,_0x4a8c23,_0x4a3e68,_0x56c34b[_0xb37c('0x35')][_0xb37c('0x4a')]));}}return Promise[_0xb37c('0x4c')](_0x42c2e3)[_0xb37c('0xf')](function(){if(_0x2ce008){_0x41e9e3[_0xb37c('0x19')]();}else{_0x41e9e3[_0xb37c('0x2d')]();}})[_0xb37c('0x11')](function(_0x4ab3ac){logger[_0xb37c('0x12')](_0xb37c('0x13'),_0x897843,JSON[_0xb37c('0x29')](_0x4ab3ac));_0x41e9e3[_0xb37c('0x19')]();});}})['catch'](function(_0x50ca4c){logger[_0xb37c('0x12')](_0xb37c('0x13'),_0x897843,_0x50ca4c['message']);_0x41e9e3[_0xb37c('0x19')]();});}}catch(_0x1ec264){logger[_0xb37c('0x12')](_0xb37c('0x13'),_0x897843,JSON['stringify'](_0x1ec264));_0x41e9e3['stop']();}};};