Built motion from commit 85328c08.|2.5.50
[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 _0xdffd=['push','all','lodash','dialogflow','md5','bluebird','../../../../config/logger','routing','./utils','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','Message','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','created','isEmpty','getMustacheRender','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','replace','SessionsClient','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','DIALOGFLOWV2_ENDCONVERSATION','intent','DIALOGFLOWV2_INTENTDISPLAYNAME','DIALOGFLOWV2_ISFALLBACKINTENT','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerResponse','fulfillmentText'];(function(_0x179c4a,_0x10eb06){var _0x5d1879=function(_0x1f1dcd){while(--_0x1f1dcd){_0x179c4a['push'](_0x179c4a['shift']());}};_0x5d1879(++_0x10eb06);}(_0xdffd,0xd7));var _0xddff=function(_0x1d8ae1,_0x1f30c9){_0x1d8ae1=_0x1d8ae1-0x0;var _0x22166e=_0xdffd[_0x1d8ae1];return _0x22166e;};'use strict';var _=require(_0xddff('0x0'));var dialogflow=require(_0xddff('0x1'));var md5=require(_0xddff('0x2'));var moment=require('moment');var Promise=require(_0xddff('0x3'));var logger=require(_0xddff('0x4'))(_0xddff('0x5'));var utils=require(_0xddff('0x6'));var rpc={'chatMessage':require(_0xddff('0x7')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xddff('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xddff('0x9')),'whatsappMessage':require(_0xddff('0xa'))};function createMessage(_0x56a36,_0x48c423,_0x1e6e53,_0x4ca4ce){return new Promise(function(_0x499221,_0x344572){var _0x24a67d=_[_0xddff('0xb')](_0x1e6e53);_0x24a67d[_0xddff('0xc')]=_0x4ca4ce;return rpc[_0x48c423+_0xddff('0xd')][_0xddff('0xe')](_0x24a67d)[_0xddff('0xf')](function(){logger[_0xddff('0x10')](_0xddff('0x11'),_0x56a36,_0x24a67d[_0xddff('0xc')]);_0x499221();})[_0xddff('0x12')](function(_0x43a901){logger[_0xddff('0x13')](_0xddff('0x11'),_0x56a36,JSON[_0xddff('0x14')](_0x43a901));_0x344572(_0x43a901);});});}exports[_0xddff('0x15')]=function(_0x18ec5e,_0x48495a){return function(_0x31212f){try{if(!_['isNil'](this[_0xddff('0x16')][_0xddff('0x17')])){logger[_0xddff('0x10')](_0xddff('0x11'),_0x18ec5e,_0xddff('0x18'));return _0x31212f[_0xddff('0x19')]();}var _0x4fdb14={'ContactId':this[_0xddff('0x1a')]['id'],'sentAt':moment()[_0xddff('0x1b')](_0xddff('0x1c')),'direction':_0xddff('0x1d')};if(this['channel']==='sms'||this[_0xddff('0x1e')]==='whatsapp'){_0x4fdb14[_0xddff('0x1f')]=this[_0xddff('0x16')][_0xddff('0x1f')];}var _0x2c973b=this[_0xddff('0x1e')];if(_0x2c973b===_0xddff('0x20')){_0x4fdb14[_0xddff('0x21')]=this[_0xddff('0x22')]['id'];}else{_0x4fdb14[_[_0xddff('0x23')](_0x2c973b)+_0xddff('0x24')]=this[_0xddff('0x22')]['id'];}_0x4fdb14[_[_0xddff('0x23')](_0x2c973b)+'InteractionId']=this['interaction']['id'];if(this['interaction'][_0xddff('0x25')]){var _0x51aa7b=_0x48495a[0x4];if(!_[_0xddff('0x26')](_0x51aa7b)){_0x4fdb14[_0xddff('0xc')]=utils[_0xddff('0x27')](_0x51aa7b,this);return rpc[_0x2c973b+'Message'][_0xddff('0xe')](_0x4fdb14)[_0xddff('0xf')](function(_0x206fba){logger['info']('[%s][DIALOGFLOWV2]\x20%s',_0x18ec5e,_0x4fdb14[_0xddff('0xc')]);})[_0xddff('0x12')](function(_0x465670){logger[_0xddff('0x13')](_0xddff('0x11'),_0x18ec5e,JSON['stringify'](_0x465670));})[_0xddff('0x28')](function(){logger[_0xddff('0x10')](_0xddff('0x29'),_0x18ec5e);_0x31212f[_0xddff('0x2a')]();});}else{logger[_0xddff('0x10')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x18ec5e);_0x31212f['stop']();}}else{var _0x5f2499=this;var _0x248d24=_0x48495a[0x2][_0xddff('0x2b')](/\\n/g,'\x0a');var _0x49f6a9={'credentials':{'private_key':_0x248d24,'client_email':_0x48495a[0x1]}};var _0x9f12d8=new dialogflow[(_0xddff('0x2c'))](_0x49f6a9);var _0x3760ab=_0x9f12d8['sessionPath'](_0x48495a[0x0],md5(_0x5f2499[_0xddff('0x16')]['id']));var _0x3ff651={'session':_0x3760ab,'queryInput':{'text':{'text':_0x5f2499[_0xddff('0x2d')][_0xddff('0xc')],'languageCode':_0x48495a[0x3]||'en'}}};return _0x9f12d8[_0xddff('0x2e')](_0x3ff651)[_0xddff('0xf')](function(_0x328272){if(_0x328272&&_0x328272[_0xddff('0x2f')]){_0x5f2499[_0xddff('0xc')][_0xddff('0x30')]=_0x328272;var _0x28b626=_0x328272[0x0];var _0x3f0a1e=_0x28b626['queryResult']['diagnosticInfo']&&_0x28b626[_0xddff('0x31')][_0xddff('0x32')][_0xddff('0x33')]?_0x28b626[_0xddff('0x31')][_0xddff('0x32')][_0xddff('0x33')][_0xddff('0x34')][_0xddff('0x35')]:![];_0x5f2499[_0xddff('0xc')][_0xddff('0x36')]=_0x28b626[_0xddff('0x31')][_0xddff('0x37')];_0x5f2499['body'][_0xddff('0x38')]=_0x28b626[_0xddff('0x31')]['allRequiredParamsPresent'];_0x5f2499[_0xddff('0xc')][_0xddff('0x39')]=_0x28b626[_0xddff('0x31')][_0xddff('0x32')]&&_0x28b626['queryResult'][_0xddff('0x32')][_0xddff('0x33')]?_0x28b626[_0xddff('0x31')][_0xddff('0x32')][_0xddff('0x33')][_0xddff('0x34')]['boolValue']:![];_0x5f2499[_0xddff('0xc')]['DIALOGFLOWV2_INTENTNAME']=_0x28b626[_0xddff('0x31')][_0xddff('0x3a')]['name'];_0x5f2499[_0xddff('0xc')][_0xddff('0x3b')]=_0x28b626['queryResult'][_0xddff('0x3a')]['displayName'];_0x5f2499['body'][_0xddff('0x3c')]=_0x28b626[_0xddff('0x31')][_0xddff('0x3a')]['isFallback'];_0x5f2499[_0xddff('0xc')][_0xddff('0x3d')]=_0x28b626['queryResult'][_0xddff('0x3e')];_0x5f2499[_0xddff('0xc')][_0xddff('0x3f')]=_0x28b626[_0xddff('0x31')][_0xddff('0x40')];_0x5f2499['body'][_0xddff('0x41')]=_0x28b626['queryResult'][_0xddff('0x42')];_0x4fdb14['providerName']='dialogflowV2';_0x4fdb14[_0xddff('0x43')]=JSON[_0xddff('0x14')](_0x328272);var _0x52adc8=[];for(var _0x35150d=0x0;_0x35150d<_0x328272[_0xddff('0x2f')];_0x35150d++){var _0x36433b=_0x328272[_0x35150d];if(_0x36433b&&_0x36433b[_0xddff('0x31')]&&_0x36433b['queryResult'][_0xddff('0x44')]){_0x52adc8[_0xddff('0x45')](createMessage(_0x18ec5e,_0x2c973b,_0x4fdb14,_0x36433b[_0xddff('0x31')][_0xddff('0x44')]));}}return Promise[_0xddff('0x46')](_0x52adc8)[_0xddff('0xf')](function(){if(_0x3f0a1e){_0x31212f[_0xddff('0x19')]();}else{_0x31212f['stop']();}})[_0xddff('0x12')](function(_0x225eaf){logger[_0xddff('0x13')](_0xddff('0x11'),_0x18ec5e,JSON['stringify'](_0x225eaf));_0x31212f[_0xddff('0x19')]();});}})[_0xddff('0x12')](function(_0x415b18){logger[_0xddff('0x13')](_0xddff('0x11'),_0x18ec5e,_0x415b18[_0xddff('0x2d')]);_0x31212f['next']();});}}catch(_0x22b40c){logger[_0xddff('0x13')](_0xddff('0x11'),_0x18ec5e,JSON[_0xddff('0x14')](_0x22b40c));_0x31212f[_0xddff('0x2a')]();}};};