Built motion from commit 5b761a7b.|2.5.36
[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 _0x367c=['stringify','isNil','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','upperFirst','AccountId','InteractionId','created','isEmpty','getMustacheRender','Message','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','replace','SessionsClient','sessionPath','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_INTENTNAME','intent','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','fulfillmentText','all','next','dialogflow','md5','moment','bluebird','../../../../config/logger','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','clone','body','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error'];(function(_0x173441,_0x26b0d9){var _0x2423a8=function(_0x4d96c2){while(--_0x4d96c2){_0x173441['push'](_0x173441['shift']());}};_0x2423a8(++_0x26b0d9);}(_0x367c,0x1b4));var _0xc367=function(_0x3afe18,_0x26922c){_0x3afe18=_0x3afe18-0x0;var _0x19ed1f=_0x367c[_0x3afe18];return _0x19ed1f;};'use strict';var _=require('lodash');var dialogflow=require(_0xc367('0x0'));var md5=require(_0xc367('0x1'));var moment=require(_0xc367('0x2'));var Promise=require(_0xc367('0x3'));var logger=require(_0xc367('0x4'))(_0xc367('0x5'));var utils=require(_0xc367('0x6'));var rpc={'chatMessage':require(_0xc367('0x7')),'openchannelMessage':require(_0xc367('0x8')),'mailMessage':require(_0xc367('0x9')),'smsMessage':require(_0xc367('0xa')),'faxMessage':require(_0xc367('0xb')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x53153c,_0x422a99,_0x42c2d2,_0x18abbd){return new Promise(function(_0x255302,_0x670a33){var _0x232dad=_[_0xc367('0xc')](_0x42c2d2);_0x232dad[_0xc367('0xd')]=_0x18abbd;return rpc[_0x422a99+'Message'][_0xc367('0xe')](_0x232dad)[_0xc367('0xf')](function(){logger[_0xc367('0x10')](_0xc367('0x11'),_0x53153c,_0x232dad[_0xc367('0xd')]);_0x255302();})[_0xc367('0x12')](function(_0x24858f){logger[_0xc367('0x13')]('[%s][DIALOGFLOWV2]\x20%s',_0x53153c,JSON[_0xc367('0x14')](_0x24858f));_0x670a33(_0x24858f);});});}exports['consequence']=function(_0x64453b,_0x2a6fe6){return function(_0x4ea667){try{if(!_[_0xc367('0x15')](this[_0xc367('0x16')][_0xc367('0x17')])){logger[_0xc367('0x10')]('[%s][DIALOGFLOWV2]\x20%s',_0x64453b,_0xc367('0x18'));return _0x4ea667['next']();}var _0x2292af={'ContactId':this[_0xc367('0x19')]['id'],'sentAt':moment()[_0xc367('0x1a')](_0xc367('0x1b')),'direction':_0xc367('0x1c')};if(this[_0xc367('0x1d')]===_0xc367('0x1e')||this[_0xc367('0x1d')]===_0xc367('0x1f')){_0x2292af['phone']=this['interaction'][_0xc367('0x20')];}var _0x81aa15=this[_0xc367('0x1d')];if(_0x81aa15===_0xc367('0x21')){_0x2292af[_0xc367('0x22')]=this['account']['id'];}else{_0x2292af[_[_0xc367('0x23')](_0x81aa15)+_0xc367('0x24')]=this['account']['id'];}_0x2292af[_['upperFirst'](_0x81aa15)+_0xc367('0x25')]=this['interaction']['id'];if(this[_0xc367('0x16')][_0xc367('0x26')]){var _0x297519=_0x2a6fe6[0x4];if(!_[_0xc367('0x27')](_0x297519)){_0x2292af['body']=utils[_0xc367('0x28')](_0x297519,this);return rpc[_0x81aa15+_0xc367('0x29')][_0xc367('0xe')](_0x2292af)[_0xc367('0xf')](function(_0x323efd){logger[_0xc367('0x10')](_0xc367('0x11'),_0x64453b,_0x2292af[_0xc367('0xd')]);})['catch'](function(_0x2144b7){logger[_0xc367('0x13')](_0xc367('0x11'),_0x64453b,JSON[_0xc367('0x14')](_0x2144b7));})['finally'](function(){logger['info'](_0xc367('0x2a'),_0x64453b);_0x4ea667['stop']();});}else{logger[_0xc367('0x10')](_0xc367('0x2b'),_0x64453b);_0x4ea667[_0xc367('0x2c')]();}}else{var _0x9dcc7=this;var _0x28b500=_0x2a6fe6[0x2][_0xc367('0x2d')](/\\n/g,'\x0a');var _0xb492e0={'credentials':{'private_key':_0x28b500,'client_email':_0x2a6fe6[0x1]}};var _0x1b8586=new dialogflow[(_0xc367('0x2e'))](_0xb492e0);var _0x4bf9d8=_0x1b8586[_0xc367('0x2f')](_0x2a6fe6[0x0],md5(_0x9dcc7[_0xc367('0x16')]['id']));var _0x32e306={'session':_0x4bf9d8,'queryInput':{'text':{'text':_0x9dcc7[_0xc367('0x30')][_0xc367('0xd')],'languageCode':_0x2a6fe6[0x3]||'en'}}};return _0x1b8586[_0xc367('0x31')](_0x32e306)[_0xc367('0xf')](function(_0x499114){if(_0x499114&&_0x499114[_0xc367('0x32')]){_0x9dcc7[_0xc367('0xd')][_0xc367('0x33')]=_0x499114;var _0x5ce0cf=_0x499114[0x0];var _0x215ed9=_0x5ce0cf[_0xc367('0x34')][_0xc367('0x35')]&&_0x5ce0cf[_0xc367('0x34')]['diagnosticInfo'][_0xc367('0x36')]?_0x5ce0cf[_0xc367('0x34')][_0xc367('0x35')][_0xc367('0x36')][_0xc367('0x37')][_0xc367('0x38')]:![];_0x9dcc7[_0xc367('0xd')]['DIALOGFLOWV2_ACTION']=_0x5ce0cf[_0xc367('0x34')][_0xc367('0x39')];_0x9dcc7[_0xc367('0xd')][_0xc367('0x3a')]=_0x5ce0cf[_0xc367('0x34')][_0xc367('0x3b')];_0x9dcc7[_0xc367('0xd')]['DIALOGFLOWV2_ENDCONVERSATION']=_0x5ce0cf['queryResult'][_0xc367('0x35')]&&_0x5ce0cf['queryResult'][_0xc367('0x35')][_0xc367('0x36')]?_0x5ce0cf[_0xc367('0x34')][_0xc367('0x35')][_0xc367('0x36')][_0xc367('0x37')]['boolValue']:![];_0x9dcc7[_0xc367('0xd')][_0xc367('0x3c')]=_0x5ce0cf[_0xc367('0x34')][_0xc367('0x3d')]['name'];_0x9dcc7['body'][_0xc367('0x3e')]=_0x5ce0cf['queryResult'][_0xc367('0x3d')][_0xc367('0x3f')];_0x9dcc7[_0xc367('0xd')][_0xc367('0x40')]=_0x5ce0cf[_0xc367('0x34')][_0xc367('0x3d')][_0xc367('0x41')];_0x9dcc7['body'][_0xc367('0x42')]=_0x5ce0cf[_0xc367('0x34')][_0xc367('0x43')];_0x9dcc7[_0xc367('0xd')][_0xc367('0x44')]=_0x5ce0cf[_0xc367('0x34')][_0xc367('0x45')];_0x9dcc7[_0xc367('0xd')][_0xc367('0x46')]=_0x5ce0cf['queryResult'][_0xc367('0x47')];_0x2292af[_0xc367('0x48')]=_0xc367('0x33');_0x2292af['providerResponse']=JSON[_0xc367('0x14')](_0x499114);var _0x448316=[];for(var _0x41d6ae=0x0;_0x41d6ae<_0x499114['length'];_0x41d6ae++){var _0x4da456=_0x499114[_0x41d6ae];if(_0x4da456&&_0x4da456[_0xc367('0x34')]&&_0x4da456[_0xc367('0x34')][_0xc367('0x49')]){_0x448316['push'](createMessage(_0x64453b,_0x81aa15,_0x2292af,_0x4da456[_0xc367('0x34')]['fulfillmentText']));}}return Promise[_0xc367('0x4a')](_0x448316)[_0xc367('0xf')](function(){if(_0x215ed9){_0x4ea667[_0xc367('0x4b')]();}else{_0x4ea667[_0xc367('0x2c')]();}})[_0xc367('0x12')](function(_0x2c784c){logger['error'](_0xc367('0x11'),_0x64453b,JSON['stringify'](_0x2c784c));_0x4ea667['next']();});}})['catch'](function(_0x18990c){logger[_0xc367('0x13')](_0xc367('0x11'),_0x64453b,_0x18990c[_0xc367('0x30')]);_0x4ea667['next']();});}}catch(_0x188b34){logger[_0xc367('0x13')]('[%s][DIALOGFLOWV2]\x20%s',_0x64453b,JSON[_0xc367('0x14')](_0x188b34));_0x4ea667['stop']();}};};