Built motion from commit ecb45b58.|2.6.31
[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 _0xb6e2=['out','channel','phone','ChatWebsiteId','account','upperFirst','InteractionId','isEmpty','catch','stringify','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','replace','SessionsClient','sessionPath','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','boolValue','DIALOGFLOWV2_INTENTNAME','intent','name','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','push','fulfillmentText','all','error','next','dialogflow','md5','bluebird','../../../../config/logger','routing','./utils','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','create','then','info','[%s][DIALOGFLOWV2]\x20%s','isNil','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format'];(function(_0x2989b3,_0x422ef6){var _0x5974f6=function(_0x444b37){while(--_0x444b37){_0x2989b3['push'](_0x2989b3['shift']());}};_0x5974f6(++_0x422ef6);}(_0xb6e2,0x79));var _0x2b6e=function(_0x439f4d,_0x2e1794){_0x439f4d=_0x439f4d-0x0;var _0x324974=_0xb6e2[_0x439f4d];return _0x324974;};'use strict';var _=require('lodash');var dialogflow=require(_0x2b6e('0x0'));var md5=require(_0x2b6e('0x1'));var moment=require('moment');var Promise=require(_0x2b6e('0x2'));var logger=require(_0x2b6e('0x3'))(_0x2b6e('0x4'));var utils=require(_0x2b6e('0x5'));var rpc={'chatMessage':require(_0x2b6e('0x6')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x2b6e('0x7')),'smsMessage':require(_0x2b6e('0x8')),'faxMessage':require(_0x2b6e('0x9')),'whatsappMessage':require(_0x2b6e('0xa'))};function createMessage(_0x2c48f6,_0x1dbb16,_0x10f3e1,_0x110e67){return new Promise(function(_0x3621ad,_0x566fa2){var _0x468cd4=_[_0x2b6e('0xb')](_0x10f3e1);_0x468cd4[_0x2b6e('0xc')]=_0x110e67;return rpc[_0x1dbb16+'Message'][_0x2b6e('0xd')](_0x468cd4)[_0x2b6e('0xe')](function(){logger[_0x2b6e('0xf')](_0x2b6e('0x10'),_0x2c48f6,_0x468cd4['body']);_0x3621ad();})['catch'](function(_0x2f566b){logger['error'](_0x2b6e('0x10'),_0x2c48f6,JSON['stringify'](_0x2f566b));_0x566fa2(_0x2f566b);});});}exports['consequence']=function(_0x2202e9,_0x5e1c0b){return function(_0xed1fa6){try{if(!_[_0x2b6e('0x11')](this[_0x2b6e('0x12')][_0x2b6e('0x13')])){logger[_0x2b6e('0xf')]('[%s][DIALOGFLOWV2]\x20%s',_0x2202e9,_0x2b6e('0x14'));return _0xed1fa6['next']();}var _0x26b91f={'ContactId':this[_0x2b6e('0x15')]['id'],'sentAt':moment()[_0x2b6e('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x2b6e('0x17')};if(this['channel']==='sms'||this[_0x2b6e('0x18')]==='whatsapp'){_0x26b91f[_0x2b6e('0x19')]=this[_0x2b6e('0x12')][_0x2b6e('0x19')];}var _0x577639=this[_0x2b6e('0x18')];if(_0x577639==='chat'){_0x26b91f[_0x2b6e('0x1a')]=this[_0x2b6e('0x1b')]['id'];}else{_0x26b91f[_[_0x2b6e('0x1c')](_0x577639)+'AccountId']=this[_0x2b6e('0x1b')]['id'];}_0x26b91f[_[_0x2b6e('0x1c')](_0x577639)+_0x2b6e('0x1d')]=this[_0x2b6e('0x12')]['id'];if(this[_0x2b6e('0x12')]['created']){var _0x2de26f=_0x5e1c0b[0x4];if(!_[_0x2b6e('0x1e')](_0x2de26f)){_0x26b91f[_0x2b6e('0xc')]=utils['getMustacheRender'](_0x2de26f,this);return rpc[_0x577639+'Message'][_0x2b6e('0xd')](_0x26b91f)[_0x2b6e('0xe')](function(_0x1ebf4e){logger['info'](_0x2b6e('0x10'),_0x2202e9,_0x26b91f[_0x2b6e('0xc')]);})[_0x2b6e('0x1f')](function(_0x2489b0){logger['error'](_0x2b6e('0x10'),_0x2202e9,JSON[_0x2b6e('0x20')](_0x2489b0));})[_0x2b6e('0x21')](function(){logger['info'](_0x2b6e('0x22'),_0x2202e9);_0xed1fa6[_0x2b6e('0x23')]();});}else{logger[_0x2b6e('0xf')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x2202e9);_0xed1fa6[_0x2b6e('0x23')]();}}else{var _0x44f14e=this;var _0x462e80=_0x5e1c0b[0x2][_0x2b6e('0x24')](/\\n/g,'\x0a');var _0x2adaf2={'credentials':{'private_key':_0x462e80,'client_email':_0x5e1c0b[0x1]}};var _0x1e5852=new dialogflow[(_0x2b6e('0x25'))](_0x2adaf2);var _0x2dc21e=_0x1e5852[_0x2b6e('0x26')](_0x5e1c0b[0x0],md5(_0x44f14e[_0x2b6e('0x12')]['id']));var _0x2f129a={'session':_0x2dc21e,'queryInput':{'text':{'text':_0x44f14e[_0x2b6e('0x27')]['body'],'languageCode':_0x5e1c0b[0x3]||'en'}}};return _0x1e5852[_0x2b6e('0x28')](_0x2f129a)[_0x2b6e('0xe')](function(_0x2681c4){if(_0x2681c4&&_0x2681c4[_0x2b6e('0x29')]){_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x2a')]=_0x2681c4;var _0x132ba3=_0x2681c4[0x0];var _0x3944fb=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x2c')]&&_0x132ba3['queryResult'][_0x2b6e('0x2c')][_0x2b6e('0x2d')]?_0x132ba3['queryResult']['diagnosticInfo'][_0x2b6e('0x2d')][_0x2b6e('0x2e')]['boolValue']:![];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x2f')]=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x30')];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x31')]=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x32')];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x33')]=_0x132ba3[_0x2b6e('0x2b')]['diagnosticInfo']&&_0x132ba3['queryResult'][_0x2b6e('0x2c')][_0x2b6e('0x2d')]?_0x132ba3[_0x2b6e('0x2b')]['diagnosticInfo'][_0x2b6e('0x2d')][_0x2b6e('0x2e')][_0x2b6e('0x34')]:![];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x35')]=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x36')][_0x2b6e('0x37')];_0x44f14e[_0x2b6e('0xc')]['DIALOGFLOWV2_INTENTDISPLAYNAME']=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x36')][_0x2b6e('0x38')];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x39')]=_0x132ba3[_0x2b6e('0x2b')]['intent'][_0x2b6e('0x3a')];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x3b')]=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x3c')];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x3d')]=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x3e')];_0x44f14e[_0x2b6e('0xc')][_0x2b6e('0x3f')]=_0x132ba3[_0x2b6e('0x2b')][_0x2b6e('0x40')];_0x26b91f[_0x2b6e('0x41')]=_0x2b6e('0x2a');_0x26b91f[_0x2b6e('0x42')]=JSON[_0x2b6e('0x20')](_0x2681c4);var _0x571b12=[];for(var _0x3730de=0x0;_0x3730de<_0x2681c4[_0x2b6e('0x29')];_0x3730de++){var _0x589ac1=_0x2681c4[_0x3730de];if(_0x589ac1&&_0x589ac1[_0x2b6e('0x2b')]&&_0x589ac1['queryResult']['fulfillmentText']){_0x571b12[_0x2b6e('0x43')](createMessage(_0x2202e9,_0x577639,_0x26b91f,_0x589ac1[_0x2b6e('0x2b')][_0x2b6e('0x44')]));}}return Promise[_0x2b6e('0x45')](_0x571b12)[_0x2b6e('0xe')](function(){if(_0x3944fb){_0xed1fa6['next']();}else{_0xed1fa6[_0x2b6e('0x23')]();}})[_0x2b6e('0x1f')](function(_0x33739c){logger[_0x2b6e('0x46')](_0x2b6e('0x10'),_0x2202e9,JSON[_0x2b6e('0x20')](_0x33739c));_0xed1fa6[_0x2b6e('0x47')]();});}})['catch'](function(_0x46b25a){logger[_0x2b6e('0x46')](_0x2b6e('0x10'),_0x2202e9,_0x46b25a[_0x2b6e('0x27')],_0x46b25a['stack']);_0xed1fa6['next']();});}}catch(_0x1842ff){logger[_0x2b6e('0x46')](_0x2b6e('0x10'),_0x2202e9,JSON[_0x2b6e('0x20')](_0x1842ff));_0xed1fa6['stop']();}};};