df42d9763bf28f3e2d69485eeea19f1fe1d1e161
[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 _0x8b0f=['../../rpc/mailMessage','../../rpc/whatsappMessage','clone','body','Message','create','then','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','isNil','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','whatsapp','phone','interaction','chat','AccountId','account','upperFirst','InteractionId','isEmpty','getMustacheRender','info','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','sessionPath','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','DIALOGFLOWV2_LANGUAGECODE','languageCode','queryText','DIALOGFLOWV2_SCORE','providerName','providerResponse','fulfillmentText','stop','dialogflow','md5','moment','bluebird','../../../../config/logger','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage'];(function(_0x44a75b,_0x3b156a){var _0x424fc0=function(_0x6571bb){while(--_0x6571bb){_0x44a75b['push'](_0x44a75b['shift']());}};_0x424fc0(++_0x3b156a);}(_0x8b0f,0x87));var _0xf8b0=function(_0x283f5e,_0x272dcc){_0x283f5e=_0x283f5e-0x0;var _0x160849=_0x8b0f[_0x283f5e];return _0x160849;};'use strict';var _=require('lodash');var dialogflow=require(_0xf8b0('0x0'));var md5=require(_0xf8b0('0x1'));var moment=require(_0xf8b0('0x2'));var Promise=require(_0xf8b0('0x3'));var logger=require(_0xf8b0('0x4'))(_0xf8b0('0x5'));var utils=require(_0xf8b0('0x6'));var rpc={'chatMessage':require(_0xf8b0('0x7')),'openchannelMessage':require(_0xf8b0('0x8')),'mailMessage':require(_0xf8b0('0x9')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xf8b0('0xa'))};function createMessage(_0x5b6b7f,_0x40311a,_0x18aa9a,_0x17a2c0){return new Promise(function(_0x11d1fe,_0x4b9ff3){var _0x25e398=_[_0xf8b0('0xb')](_0x18aa9a);_0x25e398[_0xf8b0('0xc')]=_0x17a2c0;return rpc[_0x40311a+_0xf8b0('0xd')][_0xf8b0('0xe')](_0x25e398)[_0xf8b0('0xf')](function(){logger['info'](_0xf8b0('0x10'),_0x5b6b7f,_0x25e398[_0xf8b0('0xc')]);_0x11d1fe();})[_0xf8b0('0x11')](function(_0x15b9f7){logger[_0xf8b0('0x12')](_0xf8b0('0x10'),_0x5b6b7f,JSON[_0xf8b0('0x13')](_0x15b9f7));_0x4b9ff3(_0x15b9f7);});});}exports[_0xf8b0('0x14')]=function(_0xcedbe4,_0x2777c3){return function(_0x1fd1cb){try{if(!_[_0xf8b0('0x15')](this['interaction'][_0xf8b0('0x16')])){logger['info'](_0xf8b0('0x10'),_0xcedbe4,_0xf8b0('0x17'));return _0x1fd1cb[_0xf8b0('0x18')]();}var _0x1e720b={'ContactId':this[_0xf8b0('0x19')]['id'],'sentAt':moment()['format'](_0xf8b0('0x1a')),'direction':_0xf8b0('0x1b')};if(this[_0xf8b0('0x1c')]==='sms'||this[_0xf8b0('0x1c')]===_0xf8b0('0x1d')){_0x1e720b[_0xf8b0('0x1e')]=this[_0xf8b0('0x1f')][_0xf8b0('0x1e')];}var _0x3b4ecf=this['channel'];if(_0x3b4ecf===_0xf8b0('0x20')){_0x1e720b['ChatWebsiteId']=this['account']['id'];}else{_0x1e720b[_['upperFirst'](_0x3b4ecf)+_0xf8b0('0x21')]=this[_0xf8b0('0x22')]['id'];}_0x1e720b[_[_0xf8b0('0x23')](_0x3b4ecf)+_0xf8b0('0x24')]=this[_0xf8b0('0x1f')]['id'];if(this['interaction']['created']){var _0x3e4256=_0x2777c3[0x4];if(!_[_0xf8b0('0x25')](_0x3e4256)){_0x1e720b[_0xf8b0('0xc')]=utils[_0xf8b0('0x26')](_0x3e4256,this);return rpc[_0x3b4ecf+_0xf8b0('0xd')][_0xf8b0('0xe')](_0x1e720b)['then'](function(_0x367dd6){logger[_0xf8b0('0x27')](_0xf8b0('0x10'),_0xcedbe4,_0x1e720b[_0xf8b0('0xc')]);})[_0xf8b0('0x11')](function(_0x1550b1){logger[_0xf8b0('0x12')]('[%s][DIALOGFLOWV2]\x20%s',_0xcedbe4,JSON[_0xf8b0('0x13')](_0x1550b1));})[_0xf8b0('0x28')](function(){logger[_0xf8b0('0x27')](_0xf8b0('0x29'),_0xcedbe4);_0x1fd1cb['stop']();});}else{logger[_0xf8b0('0x27')](_0xf8b0('0x2a'),_0xcedbe4);_0x1fd1cb['stop']();}}else{var _0x5d8990=this;var _0x4a3a5b=_0x2777c3[0x2][_0xf8b0('0x2b')](/\\n/g,'\x0a');var _0x118925={'credentials':{'private_key':_0x4a3a5b,'client_email':_0x2777c3[0x1]}};var _0x40cd66=new dialogflow['SessionsClient'](_0x118925);var _0x5e5966=_0x40cd66[_0xf8b0('0x2c')](_0x2777c3[0x0],md5(_0x5d8990[_0xf8b0('0x1f')]['id']));var _0x4720e3={'session':_0x5e5966,'queryInput':{'text':{'text':_0x5d8990[_0xf8b0('0x2d')][_0xf8b0('0xc')],'languageCode':_0x2777c3[0x3]||'en'}}};return _0x40cd66[_0xf8b0('0x2e')](_0x4720e3)[_0xf8b0('0xf')](function(_0x103538){if(_0x103538&&_0x103538[_0xf8b0('0x2f')]){_0x5d8990[_0xf8b0('0xc')][_0xf8b0('0x30')]=_0x103538;var _0x4842af=_0x103538[0x0];var _0x9a51e8=_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x32')]&&_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x32')][_0xf8b0('0x33')]?_0x4842af['queryResult'][_0xf8b0('0x32')][_0xf8b0('0x33')][_0xf8b0('0x34')][_0xf8b0('0x35')]:![];_0x5d8990['body']['DIALOGFLOWV2_ACTION']=_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x36')];_0x5d8990['body'][_0xf8b0('0x37')]=_0x4842af['queryResult'][_0xf8b0('0x38')];_0x5d8990['body'][_0xf8b0('0x39')]=_0x4842af['queryResult'][_0xf8b0('0x32')]&&_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x32')][_0xf8b0('0x33')]?_0x4842af[_0xf8b0('0x31')]['diagnosticInfo'][_0xf8b0('0x33')][_0xf8b0('0x34')]['boolValue']:![];_0x5d8990[_0xf8b0('0xc')][_0xf8b0('0x3a')]=_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x3b')][_0xf8b0('0x3c')];_0x5d8990[_0xf8b0('0xc')][_0xf8b0('0x3d')]=_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x3b')][_0xf8b0('0x3e')];_0x5d8990[_0xf8b0('0xc')][_0xf8b0('0x3f')]=_0x4842af[_0xf8b0('0x31')]['intent']['isFallback'];_0x5d8990[_0xf8b0('0xc')][_0xf8b0('0x40')]=_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x41')];_0x5d8990[_0xf8b0('0xc')]['DIALOGFLOWV2_QUERYTEXT']=_0x4842af[_0xf8b0('0x31')][_0xf8b0('0x42')];_0x5d8990['body'][_0xf8b0('0x43')]=_0x4842af[_0xf8b0('0x31')]['intentDetectionConfidence'];_0x1e720b[_0xf8b0('0x44')]=_0xf8b0('0x30');_0x1e720b[_0xf8b0('0x45')]=JSON[_0xf8b0('0x13')](_0x103538);var _0x31db37=[];for(var _0x1421b6=0x0;_0x1421b6<_0x103538[_0xf8b0('0x2f')];_0x1421b6++){var _0x4790d5=_0x103538[_0x1421b6];if(_0x4790d5&&_0x4790d5[_0xf8b0('0x31')]&&_0x4790d5[_0xf8b0('0x31')]['fulfillmentText']){_0x31db37['push'](createMessage(_0xcedbe4,_0x3b4ecf,_0x1e720b,_0x4790d5[_0xf8b0('0x31')][_0xf8b0('0x46')]));}}return Promise['all'](_0x31db37)[_0xf8b0('0xf')](function(){if(_0x9a51e8){_0x1fd1cb['next']();}else{_0x1fd1cb[_0xf8b0('0x47')]();}})[_0xf8b0('0x11')](function(_0x3f0510){logger[_0xf8b0('0x12')]('[%s][DIALOGFLOWV2]\x20%s',_0xcedbe4,JSON[_0xf8b0('0x13')](_0x3f0510));_0x1fd1cb[_0xf8b0('0x18')]();});}})[_0xf8b0('0x11')](function(_0x499685){logger[_0xf8b0('0x12')](_0xf8b0('0x10'),_0xcedbe4,_0x499685['message']);_0x1fd1cb['next']();});}}catch(_0x477caa){logger[_0xf8b0('0x12')]('[%s][DIALOGFLOWV2]\x20%s',_0xcedbe4,JSON[_0xf8b0('0x13')](_0x477caa));_0x1fd1cb[_0xf8b0('0x47')]();}};};