Built motion from commit 3e059bc2.|2.5.32
[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 _0xb08b=['intent','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','queryText','DIALOGFLOWV2_SCORE','providerName','dialogflowV2','providerResponse','fulfillmentText','push','all','message','dialogflow','md5','moment','bluebird','../../../../config/logger','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','create','then','info','error','[%s][DIALOGFLOWV2]\x20%s','stringify','consequence','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','getMustacheRender','catch','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','length','queryResult','diagnosticInfo','fields','boolValue','DIALOGFLOWV2_ACTION','action','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','end_conversation','DIALOGFLOWV2_INTENTNAME','name'];(function(_0x39c8d4,_0x48a826){var _0xfa5dd6=function(_0x3dc2ad){while(--_0x3dc2ad){_0x39c8d4['push'](_0x39c8d4['shift']());}};_0xfa5dd6(++_0x48a826);}(_0xb08b,0x181));var _0xbb08=function(_0x1ecb5e,_0x1fa682){_0x1ecb5e=_0x1ecb5e-0x0;var _0x5927ac=_0xb08b[_0x1ecb5e];return _0x5927ac;};'use strict';var _=require('lodash');var dialogflow=require(_0xbb08('0x0'));var md5=require(_0xbb08('0x1'));var moment=require(_0xbb08('0x2'));var Promise=require(_0xbb08('0x3'));var logger=require(_0xbb08('0x4'))('routing');var utils=require(_0xbb08('0x5'));var rpc={'chatMessage':require(_0xbb08('0x6')),'openchannelMessage':require(_0xbb08('0x7')),'mailMessage':require(_0xbb08('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xbb08('0x9')),'whatsappMessage':require(_0xbb08('0xa'))};function createMessage(_0x4500ce,_0x3b84fd,_0x4badc8,_0x2636ba){return new Promise(function(_0x371109,_0x2b8521){var _0x5c25c5=_[_0xbb08('0xb')](_0x4badc8);_0x5c25c5[_0xbb08('0xc')]=_0x2636ba;return rpc[_0x3b84fd+'Message'][_0xbb08('0xd')](_0x5c25c5)[_0xbb08('0xe')](function(){logger[_0xbb08('0xf')]('[%s][DIALOGFLOWV2]\x20%s',_0x4500ce,_0x5c25c5[_0xbb08('0xc')]);_0x371109();})['catch'](function(_0x25313f){logger[_0xbb08('0x10')](_0xbb08('0x11'),_0x4500ce,JSON[_0xbb08('0x12')](_0x25313f));_0x2b8521(_0x25313f);});});}exports[_0xbb08('0x13')]=function(_0x48a8c9,_0x15ced7){return function(_0x599e81){try{if(!_['isNil'](this[_0xbb08('0x14')][_0xbb08('0x15')])){logger['info']('[%s][DIALOGFLOWV2]\x20%s',_0x48a8c9,_0xbb08('0x16'));return _0x599e81[_0xbb08('0x17')]();}var _0x56a861={'ContactId':this[_0xbb08('0x18')]['id'],'sentAt':moment()[_0xbb08('0x19')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xbb08('0x1a')};if(this[_0xbb08('0x1b')]===_0xbb08('0x1c')||this[_0xbb08('0x1b')]===_0xbb08('0x1d')){_0x56a861['phone']=this[_0xbb08('0x14')][_0xbb08('0x1e')];}var _0x1caed6=this[_0xbb08('0x1b')];if(_0x1caed6===_0xbb08('0x1f')){_0x56a861[_0xbb08('0x20')]=this[_0xbb08('0x21')]['id'];}else{_0x56a861[_[_0xbb08('0x22')](_0x1caed6)+_0xbb08('0x23')]=this['account']['id'];}_0x56a861[_[_0xbb08('0x22')](_0x1caed6)+_0xbb08('0x24')]=this[_0xbb08('0x14')]['id'];if(this[_0xbb08('0x14')][_0xbb08('0x25')]){var _0x47ee96=_0x15ced7[0x4];if(!_['isEmpty'](_0x47ee96)){_0x56a861[_0xbb08('0xc')]=utils[_0xbb08('0x26')](_0x47ee96,this);return rpc[_0x1caed6+'Message']['create'](_0x56a861)['then'](function(_0x8153d8){logger['info']('[%s][DIALOGFLOWV2]\x20%s',_0x48a8c9,_0x56a861['body']);})[_0xbb08('0x27')](function(_0x51c148){logger['error'](_0xbb08('0x11'),_0x48a8c9,JSON[_0xbb08('0x12')](_0x51c148));})[_0xbb08('0x28')](function(){logger[_0xbb08('0xf')](_0xbb08('0x29'),_0x48a8c9);_0x599e81[_0xbb08('0x2a')]();});}else{logger[_0xbb08('0xf')](_0xbb08('0x2b'),_0x48a8c9);_0x599e81[_0xbb08('0x2a')]();}}else{var _0x54d104=this;var _0x4f3d84=_0x15ced7[0x2][_0xbb08('0x2c')](/\\n/g,'\x0a');var _0x12edf8={'credentials':{'private_key':_0x4f3d84,'client_email':_0x15ced7[0x1]}};var _0x2c6a48=new dialogflow[(_0xbb08('0x2d'))](_0x12edf8);var _0x4d9e22=_0x2c6a48[_0xbb08('0x2e')](_0x15ced7[0x0],md5(_0x54d104[_0xbb08('0x14')]['id']));var _0x5c4407={'session':_0x4d9e22,'queryInput':{'text':{'text':_0x54d104['message'][_0xbb08('0xc')],'languageCode':_0x15ced7[0x3]||'en'}}};return _0x2c6a48['detectIntent'](_0x5c4407)[_0xbb08('0xe')](function(_0x15b286){if(_0x15b286&&_0x15b286[_0xbb08('0x2f')]){_0x54d104[_0xbb08('0xc')]['dialogflowV2']=_0x15b286;var _0x41f7d4=_0x15b286[0x0];var _0x1164ad=_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x31')]&&_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x31')][_0xbb08('0x32')]?_0x41f7d4['queryResult'][_0xbb08('0x31')][_0xbb08('0x32')]['end_conversation'][_0xbb08('0x33')]:![];_0x54d104['body'][_0xbb08('0x34')]=_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x35')];_0x54d104[_0xbb08('0xc')]['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x36')];_0x54d104[_0xbb08('0xc')][_0xbb08('0x37')]=_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x31')]&&_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x31')]['fields']?_0x41f7d4['queryResult'][_0xbb08('0x31')][_0xbb08('0x32')][_0xbb08('0x38')][_0xbb08('0x33')]:![];_0x54d104[_0xbb08('0xc')][_0xbb08('0x39')]=_0x41f7d4[_0xbb08('0x30')]['intent'][_0xbb08('0x3a')];_0x54d104[_0xbb08('0xc')]['DIALOGFLOWV2_INTENTDISPLAYNAME']=_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x3b')][_0xbb08('0x3c')];_0x54d104['body'][_0xbb08('0x3d')]=_0x41f7d4[_0xbb08('0x30')]['intent'][_0xbb08('0x3e')];_0x54d104[_0xbb08('0xc')][_0xbb08('0x3f')]=_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x40')];_0x54d104[_0xbb08('0xc')]['DIALOGFLOWV2_QUERYTEXT']=_0x41f7d4[_0xbb08('0x30')][_0xbb08('0x41')];_0x54d104[_0xbb08('0xc')][_0xbb08('0x42')]=_0x41f7d4['queryResult']['intentDetectionConfidence'];_0x56a861[_0xbb08('0x43')]=_0xbb08('0x44');_0x56a861[_0xbb08('0x45')]=JSON['stringify'](_0x15b286);var _0x5905f2=[];for(var _0x2c9ea7=0x0;_0x2c9ea7<_0x15b286['length'];_0x2c9ea7++){var _0x51c446=_0x15b286[_0x2c9ea7];if(_0x51c446&&_0x51c446[_0xbb08('0x30')]&&_0x51c446[_0xbb08('0x30')][_0xbb08('0x46')]){_0x5905f2[_0xbb08('0x47')](createMessage(_0x48a8c9,_0x1caed6,_0x56a861,_0x51c446['queryResult'][_0xbb08('0x46')]));}}return Promise[_0xbb08('0x48')](_0x5905f2)['then'](function(){if(_0x1164ad){_0x599e81[_0xbb08('0x17')]();}else{_0x599e81[_0xbb08('0x2a')]();}})[_0xbb08('0x27')](function(_0x5be625){logger[_0xbb08('0x10')](_0xbb08('0x11'),_0x48a8c9,JSON[_0xbb08('0x12')](_0x5be625));_0x599e81['next']();});}})[_0xbb08('0x27')](function(_0x5721eb){logger['error'](_0xbb08('0x11'),_0x48a8c9,_0x5721eb[_0xbb08('0x49')]);_0x599e81[_0xbb08('0x17')]();});}}catch(_0x1f1f89){logger[_0xbb08('0x10')]('[%s][DIALOGFLOWV2]\x20%s',_0x48a8c9,JSON[_0xbb08('0x12')](_0x1f1f89));_0x599e81[_0xbb08('0x2a')]();}};};