Built motion from commit bab6f49e.|2.6.17
[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 _0x5000=['bluebird','./utils','../../rpc/chatMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','clone','body','info','[%s][DIALOGFLOWV2]\x20%s','stringify','isNil','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','interaction','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','getMustacheRender','Message','create','then','catch','error','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','message','detectIntent','length','dialogflowV2','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','queryResult','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','fulfillmentText','all','stop','dialogflow','moment'];(function(_0x591e16,_0x5aefc1){var _0x543b35=function(_0x81e3be){while(--_0x81e3be){_0x591e16['push'](_0x591e16['shift']());}};_0x543b35(++_0x5aefc1);}(_0x5000,0x11a));var _0x0500=function(_0x332c16,_0x30bf3f){_0x332c16=_0x332c16-0x0;var _0x16772d=_0x5000[_0x332c16];return _0x16772d;};'use strict';var _=require('lodash');var dialogflow=require(_0x0500('0x0'));var md5=require('md5');var moment=require(_0x0500('0x1'));var Promise=require(_0x0500('0x2'));var logger=require('../../../../config/logger')('routing');var utils=require(_0x0500('0x3'));var rpc={'chatMessage':require(_0x0500('0x4')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x0500('0x5')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x0500('0x6'))};function createMessage(_0x5cfd2f,_0x21ddf2,_0x2b3638,_0x5c49b6){return new Promise(function(_0x1133c4,_0x29212d){var _0x146f1b=_[_0x0500('0x7')](_0x2b3638);_0x146f1b[_0x0500('0x8')]=_0x5c49b6;return rpc[_0x21ddf2+'Message']['create'](_0x146f1b)['then'](function(){logger[_0x0500('0x9')]('[%s][DIALOGFLOWV2]\x20%s',_0x5cfd2f,_0x146f1b[_0x0500('0x8')]);_0x1133c4();})['catch'](function(_0x1561a2){logger['error'](_0x0500('0xa'),_0x5cfd2f,JSON[_0x0500('0xb')](_0x1561a2));_0x29212d(_0x1561a2);});});}exports['consequence']=function(_0x100d53,_0x1ddde0){return function(_0x3598af){try{if(!_[_0x0500('0xc')](this['interaction'][_0x0500('0xd')])){logger['info'](_0x0500('0xa'),_0x100d53,_0x0500('0xe'));return _0x3598af[_0x0500('0xf')]();}var _0x4c4e90={'ContactId':this[_0x0500('0x10')]['id'],'sentAt':moment()['format'](_0x0500('0x11')),'direction':_0x0500('0x12')};if(this[_0x0500('0x13')]===_0x0500('0x14')||this['channel']===_0x0500('0x15')){_0x4c4e90[_0x0500('0x16')]=this[_0x0500('0x17')][_0x0500('0x16')];}var _0x258a37=this[_0x0500('0x13')];if(_0x258a37===_0x0500('0x18')){_0x4c4e90[_0x0500('0x19')]=this[_0x0500('0x1a')]['id'];}else{_0x4c4e90[_[_0x0500('0x1b')](_0x258a37)+_0x0500('0x1c')]=this[_0x0500('0x1a')]['id'];}_0x4c4e90[_[_0x0500('0x1b')](_0x258a37)+_0x0500('0x1d')]=this[_0x0500('0x17')]['id'];if(this[_0x0500('0x17')][_0x0500('0x1e')]){var _0x5c19e7=_0x1ddde0[0x4];if(!_[_0x0500('0x1f')](_0x5c19e7)){_0x4c4e90[_0x0500('0x8')]=utils[_0x0500('0x20')](_0x5c19e7,this);return rpc[_0x258a37+_0x0500('0x21')][_0x0500('0x22')](_0x4c4e90)[_0x0500('0x23')](function(_0x5efdda){logger[_0x0500('0x9')](_0x0500('0xa'),_0x100d53,_0x4c4e90[_0x0500('0x8')]);})[_0x0500('0x24')](function(_0x1b4f40){logger[_0x0500('0x25')]('[%s][DIALOGFLOWV2]\x20%s',_0x100d53,JSON[_0x0500('0xb')](_0x1b4f40));})[_0x0500('0x26')](function(){logger[_0x0500('0x9')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x100d53);_0x3598af['stop']();});}else{logger[_0x0500('0x9')](_0x0500('0x27'),_0x100d53);_0x3598af['stop']();}}else{var _0x1559a6=this;var _0x291e9e=_0x1ddde0[0x2][_0x0500('0x28')](/\\n/g,'\x0a');var _0x9ef78f={'credentials':{'private_key':_0x291e9e,'client_email':_0x1ddde0[0x1]}};var _0x497838=new dialogflow[(_0x0500('0x29'))](_0x9ef78f);var _0x3ea546=_0x497838[_0x0500('0x2a')](_0x1ddde0[0x0],md5(_0x1559a6[_0x0500('0x17')]['id']));var _0x343a47={'session':_0x3ea546,'queryInput':{'text':{'text':_0x1559a6[_0x0500('0x2b')]['body'],'languageCode':_0x1ddde0[0x3]||'en'}}};return _0x497838[_0x0500('0x2c')](_0x343a47)[_0x0500('0x23')](function(_0x3a550b){if(_0x3a550b&&_0x3a550b[_0x0500('0x2d')]){_0x1559a6[_0x0500('0x8')][_0x0500('0x2e')]=_0x3a550b;var _0x246291=_0x3a550b[0x0];var _0x278a57=_0x246291['queryResult']['diagnosticInfo']&&_0x246291['queryResult'][_0x0500('0x2f')][_0x0500('0x30')]?_0x246291['queryResult'][_0x0500('0x2f')][_0x0500('0x30')][_0x0500('0x31')][_0x0500('0x32')]:![];_0x1559a6[_0x0500('0x8')][_0x0500('0x33')]=_0x246291['queryResult'][_0x0500('0x34')];_0x1559a6['body']['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x246291[_0x0500('0x35')][_0x0500('0x36')];_0x1559a6[_0x0500('0x8')][_0x0500('0x37')]=_0x246291[_0x0500('0x35')]['diagnosticInfo']&&_0x246291[_0x0500('0x35')]['diagnosticInfo'][_0x0500('0x30')]?_0x246291[_0x0500('0x35')][_0x0500('0x2f')][_0x0500('0x30')][_0x0500('0x31')]['boolValue']:![];_0x1559a6[_0x0500('0x8')][_0x0500('0x38')]=_0x246291[_0x0500('0x35')][_0x0500('0x39')][_0x0500('0x3a')];_0x1559a6[_0x0500('0x8')][_0x0500('0x3b')]=_0x246291[_0x0500('0x35')]['intent'][_0x0500('0x3c')];_0x1559a6[_0x0500('0x8')][_0x0500('0x3d')]=_0x246291[_0x0500('0x35')][_0x0500('0x39')][_0x0500('0x3e')];_0x1559a6['body']['DIALOGFLOWV2_LANGUAGECODE']=_0x246291['queryResult'][_0x0500('0x3f')];_0x1559a6['body'][_0x0500('0x40')]=_0x246291['queryResult'][_0x0500('0x41')];_0x1559a6[_0x0500('0x8')][_0x0500('0x42')]=_0x246291[_0x0500('0x35')][_0x0500('0x43')];_0x4c4e90['providerName']=_0x0500('0x2e');_0x4c4e90['providerResponse']=JSON[_0x0500('0xb')](_0x3a550b);var _0x3623f2=[];for(var _0x28e9e2=0x0;_0x28e9e2<_0x3a550b[_0x0500('0x2d')];_0x28e9e2++){var _0x3a2ab6=_0x3a550b[_0x28e9e2];if(_0x3a2ab6&&_0x3a2ab6[_0x0500('0x35')]&&_0x3a2ab6[_0x0500('0x35')]['fulfillmentText']){_0x3623f2['push'](createMessage(_0x100d53,_0x258a37,_0x4c4e90,_0x3a2ab6[_0x0500('0x35')][_0x0500('0x44')]));}}return Promise[_0x0500('0x45')](_0x3623f2)[_0x0500('0x23')](function(){if(_0x278a57){_0x3598af['next']();}else{_0x3598af['stop']();}})['catch'](function(_0x312bc4){logger['error'](_0x0500('0xa'),_0x100d53,JSON[_0x0500('0xb')](_0x312bc4));_0x3598af['next']();});}})[_0x0500('0x24')](function(_0xe17156){logger[_0x0500('0x25')](_0x0500('0xa'),_0x100d53,_0xe17156[_0x0500('0x2b')],_0xe17156['stack']);_0x3598af['next']();});}}catch(_0x20da32){logger[_0x0500('0x25')](_0x0500('0xa'),_0x100d53,JSON[_0x0500('0xb')](_0x20da32));_0x3598af[_0x0500('0x46')]();}};};