525005b7919e9ef8e08cbfc832e01137b31b5d86
[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 _0xf1d5=['replace','SessionsClient','sessionPath','message','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_INTENTDISPLAYNAME','DIALOGFLOWV2_ISFALLBACKINTENT','intent','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','fulfillmentText','push','all','next','lodash','md5','bluebird','routing','./utils','../../rpc/chatMessage','../../rpc/smsMessage','../../rpc/faxMessage','body','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','isNil','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','interaction','chat','ChatWebsiteId','account','upperFirst','InteractionId','created','isEmpty','Message','stringify','finally','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!'];(function(_0x3fa59c,_0x2302f9){var _0x239a2c=function(_0x410d0f){while(--_0x410d0f){_0x3fa59c['push'](_0x3fa59c['shift']());}};_0x239a2c(++_0x2302f9);}(_0xf1d5,0x1e9));var _0x5f1d=function(_0x49d256,_0x5f4b4c){_0x49d256=_0x49d256-0x0;var _0x5542fc=_0xf1d5[_0x49d256];return _0x5542fc;};'use strict';var _=require(_0x5f1d('0x0'));var dialogflow=require('dialogflow');var md5=require(_0x5f1d('0x1'));var moment=require('moment');var Promise=require(_0x5f1d('0x2'));var logger=require('../../../../config/logger')(_0x5f1d('0x3'));var utils=require(_0x5f1d('0x4'));var rpc={'chatMessage':require(_0x5f1d('0x5')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x5f1d('0x6')),'faxMessage':require(_0x5f1d('0x7')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x2b7488,_0x187a5a,_0x1f53cb,_0x523cdb){return new Promise(function(_0x36fcbb,_0x31e250){var _0x249bb5=_['clone'](_0x1f53cb);_0x249bb5[_0x5f1d('0x8')]=_0x523cdb;return rpc[_0x187a5a+'Message'][_0x5f1d('0x9')](_0x249bb5)[_0x5f1d('0xa')](function(){logger[_0x5f1d('0xb')](_0x5f1d('0xc'),_0x2b7488,_0x249bb5[_0x5f1d('0x8')]);_0x36fcbb();})[_0x5f1d('0xd')](function(_0x1540a9){logger[_0x5f1d('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x2b7488,JSON['stringify'](_0x1540a9));_0x31e250(_0x1540a9);});});}exports['consequence']=function(_0x33267b,_0x2e2ca5){return function(_0x3ce8be){try{if(!_[_0x5f1d('0xf')](this['interaction'][_0x5f1d('0x10')])){logger[_0x5f1d('0xb')]('[%s][DIALOGFLOWV2]\x20%s',_0x33267b,_0x5f1d('0x11'));return _0x3ce8be['next']();}var _0x67e3e0={'ContactId':this[_0x5f1d('0x12')]['id'],'sentAt':moment()[_0x5f1d('0x13')](_0x5f1d('0x14')),'direction':_0x5f1d('0x15')};if(this[_0x5f1d('0x16')]===_0x5f1d('0x17')||this['channel']===_0x5f1d('0x18')){_0x67e3e0[_0x5f1d('0x19')]=this[_0x5f1d('0x1a')][_0x5f1d('0x19')];}var _0x1fedd6=this[_0x5f1d('0x16')];if(_0x1fedd6===_0x5f1d('0x1b')){_0x67e3e0[_0x5f1d('0x1c')]=this[_0x5f1d('0x1d')]['id'];}else{_0x67e3e0[_[_0x5f1d('0x1e')](_0x1fedd6)+'AccountId']=this[_0x5f1d('0x1d')]['id'];}_0x67e3e0[_['upperFirst'](_0x1fedd6)+_0x5f1d('0x1f')]=this[_0x5f1d('0x1a')]['id'];if(this[_0x5f1d('0x1a')][_0x5f1d('0x20')]){var _0x1cc1f3=_0x2e2ca5[0x4];if(!_[_0x5f1d('0x21')](_0x1cc1f3)){_0x67e3e0[_0x5f1d('0x8')]=utils['getMustacheRender'](_0x1cc1f3,this);return rpc[_0x1fedd6+_0x5f1d('0x22')][_0x5f1d('0x9')](_0x67e3e0)[_0x5f1d('0xa')](function(_0x4eb90d){logger['info'](_0x5f1d('0xc'),_0x33267b,_0x67e3e0['body']);})[_0x5f1d('0xd')](function(_0x12ee2b){logger['error']('[%s][DIALOGFLOWV2]\x20%s',_0x33267b,JSON[_0x5f1d('0x23')](_0x12ee2b));})[_0x5f1d('0x24')](function(){logger[_0x5f1d('0xb')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x33267b);_0x3ce8be[_0x5f1d('0x25')]();});}else{logger[_0x5f1d('0xb')](_0x5f1d('0x26'),_0x33267b);_0x3ce8be[_0x5f1d('0x25')]();}}else{var _0x555efc=this;var _0x11fc2f=_0x2e2ca5[0x2][_0x5f1d('0x27')](/\\n/g,'\x0a');var _0x384d1d={'credentials':{'private_key':_0x11fc2f,'client_email':_0x2e2ca5[0x1]}};var _0x2e6931=new dialogflow[(_0x5f1d('0x28'))](_0x384d1d);var _0x242d62=_0x2e6931[_0x5f1d('0x29')](_0x2e2ca5[0x0],md5(_0x555efc[_0x5f1d('0x1a')]['id']));var _0x384d08={'session':_0x242d62,'queryInput':{'text':{'text':_0x555efc[_0x5f1d('0x2a')][_0x5f1d('0x8')],'languageCode':_0x2e2ca5[0x3]||'en'}}};return _0x2e6931['detectIntent'](_0x384d08)[_0x5f1d('0xa')](function(_0x5e8f98){if(_0x5e8f98&&_0x5e8f98['length']){_0x555efc[_0x5f1d('0x8')][_0x5f1d('0x2b')]=_0x5e8f98;var _0x5d4f31=_0x5e8f98[0x0];var _0x1e916c=_0x5d4f31[_0x5f1d('0x2c')][_0x5f1d('0x2d')]&&_0x5d4f31[_0x5f1d('0x2c')]['diagnosticInfo'][_0x5f1d('0x2e')]?_0x5d4f31[_0x5f1d('0x2c')]['diagnosticInfo'][_0x5f1d('0x2e')][_0x5f1d('0x2f')][_0x5f1d('0x30')]:![];_0x555efc[_0x5f1d('0x8')]['DIALOGFLOWV2_ACTION']=_0x5d4f31['queryResult'][_0x5f1d('0x31')];_0x555efc['body'][_0x5f1d('0x32')]=_0x5d4f31[_0x5f1d('0x2c')][_0x5f1d('0x33')];_0x555efc[_0x5f1d('0x8')]['DIALOGFLOWV2_ENDCONVERSATION']=_0x5d4f31[_0x5f1d('0x2c')][_0x5f1d('0x2d')]&&_0x5d4f31[_0x5f1d('0x2c')]['diagnosticInfo']['fields']?_0x5d4f31['queryResult'][_0x5f1d('0x2d')][_0x5f1d('0x2e')]['end_conversation']['boolValue']:![];_0x555efc[_0x5f1d('0x8')]['DIALOGFLOWV2_INTENTNAME']=_0x5d4f31[_0x5f1d('0x2c')]['intent']['name'];_0x555efc[_0x5f1d('0x8')][_0x5f1d('0x34')]=_0x5d4f31[_0x5f1d('0x2c')]['intent']['displayName'];_0x555efc[_0x5f1d('0x8')][_0x5f1d('0x35')]=_0x5d4f31[_0x5f1d('0x2c')][_0x5f1d('0x36')][_0x5f1d('0x37')];_0x555efc[_0x5f1d('0x8')][_0x5f1d('0x38')]=_0x5d4f31[_0x5f1d('0x2c')][_0x5f1d('0x39')];_0x555efc[_0x5f1d('0x8')]['DIALOGFLOWV2_QUERYTEXT']=_0x5d4f31['queryResult']['queryText'];_0x555efc[_0x5f1d('0x8')][_0x5f1d('0x3a')]=_0x5d4f31[_0x5f1d('0x2c')][_0x5f1d('0x3b')];_0x67e3e0[_0x5f1d('0x3c')]='dialogflowV2';_0x67e3e0[_0x5f1d('0x3d')]=JSON[_0x5f1d('0x23')](_0x5e8f98);var _0x54c397=[];for(var _0x313b2b=0x0;_0x313b2b<_0x5e8f98['length'];_0x313b2b++){var _0x4a6ebf=_0x5e8f98[_0x313b2b];if(_0x4a6ebf&&_0x4a6ebf[_0x5f1d('0x2c')]&&_0x4a6ebf[_0x5f1d('0x2c')][_0x5f1d('0x3e')]){_0x54c397[_0x5f1d('0x3f')](createMessage(_0x33267b,_0x1fedd6,_0x67e3e0,_0x4a6ebf[_0x5f1d('0x2c')]['fulfillmentText']));}}return Promise[_0x5f1d('0x40')](_0x54c397)[_0x5f1d('0xa')](function(){if(_0x1e916c){_0x3ce8be[_0x5f1d('0x41')]();}else{_0x3ce8be[_0x5f1d('0x25')]();}})[_0x5f1d('0xd')](function(_0x1bd512){logger['error']('[%s][DIALOGFLOWV2]\x20%s',_0x33267b,JSON[_0x5f1d('0x23')](_0x1bd512));_0x3ce8be[_0x5f1d('0x41')]();});}})[_0x5f1d('0xd')](function(_0x4fc983){logger[_0x5f1d('0xe')](_0x5f1d('0xc'),_0x33267b,_0x4fc983[_0x5f1d('0x2a')]);_0x3ce8be[_0x5f1d('0x41')]();});}}catch(_0x58ac50){logger[_0x5f1d('0xe')](_0x5f1d('0xc'),_0x33267b,JSON[_0x5f1d('0x23')](_0x58ac50));_0x3ce8be['stop']();}};};