319e79bc800cdfabdd27b0d8ae6c96b8759d9775
[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 _0x1979=['[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','sessionPath','detectIntent','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','DIALOGFLOWV2_LANGUAGECODE','languageCode','queryText','DIALOGFLOWV2_SCORE','providerName','length','fulfillmentText','push','message','lodash','dialogflow','moment','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','clone','body','Message','create','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','isNil','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','out','sms','phone','channel','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','getMustacheRender','then','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop'];(function(_0x1afc02,_0x102049){var _0x19e94a=function(_0x40f4e2){while(--_0x40f4e2){_0x1afc02['push'](_0x1afc02['shift']());}};_0x19e94a(++_0x102049);}(_0x1979,0x1b9));var _0x9197=function(_0x38c699,_0x56fea7){_0x38c699=_0x38c699-0x0;var _0x3b1ded=_0x1979[_0x38c699];return _0x3b1ded;};'use strict';var _=require(_0x9197('0x0'));var dialogflow=require(_0x9197('0x1'));var md5=require('md5');var moment=require(_0x9197('0x2'));var Promise=require('bluebird');var logger=require('../../../../config/logger')(_0x9197('0x3'));var utils=require(_0x9197('0x4'));var rpc={'chatMessage':require(_0x9197('0x5')),'openchannelMessage':require(_0x9197('0x6')),'mailMessage':require(_0x9197('0x7')),'smsMessage':require(_0x9197('0x8')),'faxMessage':require(_0x9197('0x9')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x5be4f4,_0x5968e7,_0x512f2a,_0x38f778){return new Promise(function(_0x178ee3,_0x5b4ad9){var _0xcd4024=_[_0x9197('0xa')](_0x512f2a);_0xcd4024[_0x9197('0xb')]=_0x38f778;return rpc[_0x5968e7+_0x9197('0xc')][_0x9197('0xd')](_0xcd4024)['then'](function(){logger[_0x9197('0xe')](_0x9197('0xf'),_0x5be4f4,_0xcd4024[_0x9197('0xb')]);_0x178ee3();})[_0x9197('0x10')](function(_0xe1641b){logger[_0x9197('0x11')](_0x9197('0xf'),_0x5be4f4,JSON[_0x9197('0x12')](_0xe1641b));_0x5b4ad9(_0xe1641b);});});}exports['consequence']=function(_0x16124d,_0x432631){return function(_0x21dade){try{if(!_[_0x9197('0x13')](this[_0x9197('0x14')][_0x9197('0x15')])){logger[_0x9197('0xe')](_0x9197('0xf'),_0x16124d,_0x9197('0x16'));return _0x21dade[_0x9197('0x17')]();}var _0x51796c={'ContactId':this[_0x9197('0x18')]['id'],'sentAt':moment()['format'](_0x9197('0x19')),'direction':_0x9197('0x1a')};if(this['channel']===_0x9197('0x1b')||this['channel']==='whatsapp'){_0x51796c[_0x9197('0x1c')]=this[_0x9197('0x14')][_0x9197('0x1c')];}var _0x4ff4da=this[_0x9197('0x1d')];if(_0x4ff4da===_0x9197('0x1e')){_0x51796c[_0x9197('0x1f')]=this[_0x9197('0x20')]['id'];}else{_0x51796c[_[_0x9197('0x21')](_0x4ff4da)+_0x9197('0x22')]=this['account']['id'];}_0x51796c[_[_0x9197('0x21')](_0x4ff4da)+_0x9197('0x23')]=this[_0x9197('0x14')]['id'];if(this[_0x9197('0x14')][_0x9197('0x24')]){var _0x3de796=_0x432631[0x4];if(!_[_0x9197('0x25')](_0x3de796)){_0x51796c[_0x9197('0xb')]=utils[_0x9197('0x26')](_0x3de796,this);return rpc[_0x4ff4da+_0x9197('0xc')]['create'](_0x51796c)[_0x9197('0x27')](function(_0x457d66){logger['info']('[%s][DIALOGFLOWV2]\x20%s',_0x16124d,_0x51796c[_0x9197('0xb')]);})[_0x9197('0x10')](function(_0x23bf4e){logger[_0x9197('0x11')](_0x9197('0xf'),_0x16124d,JSON[_0x9197('0x12')](_0x23bf4e));})['finally'](function(){logger['info'](_0x9197('0x28'),_0x16124d);_0x21dade[_0x9197('0x29')]();});}else{logger['info'](_0x9197('0x2a'),_0x16124d);_0x21dade[_0x9197('0x29')]();}}else{var _0x2569f8=this;var _0x23c150=_0x432631[0x2]['replace'](/\\n/g,'\x0a');var _0x20030e={'credentials':{'private_key':_0x23c150,'client_email':_0x432631[0x1]}};var _0x3edbcd=new dialogflow['SessionsClient'](_0x20030e);var _0x81a3ca=_0x3edbcd[_0x9197('0x2b')](_0x432631[0x0],md5(_0x2569f8['interaction']['id']));var _0x5b6cfb={'session':_0x81a3ca,'queryInput':{'text':{'text':_0x2569f8['message'][_0x9197('0xb')],'languageCode':_0x432631[0x3]||'en'}}};return _0x3edbcd[_0x9197('0x2c')](_0x5b6cfb)[_0x9197('0x27')](function(_0x589247){if(_0x589247&&_0x589247['length']){_0x2569f8['body']['dialogflowV2']=_0x589247;var _0x2b3b99=_0x589247[0x0];var _0x17aa63=_0x2b3b99[_0x9197('0x2d')][_0x9197('0x2e')]&&_0x2b3b99[_0x9197('0x2d')]['diagnosticInfo']['fields']?_0x2b3b99['queryResult'][_0x9197('0x2e')][_0x9197('0x2f')][_0x9197('0x30')][_0x9197('0x31')]:![];_0x2569f8[_0x9197('0xb')][_0x9197('0x32')]=_0x2b3b99[_0x9197('0x2d')][_0x9197('0x33')];_0x2569f8[_0x9197('0xb')][_0x9197('0x34')]=_0x2b3b99[_0x9197('0x2d')][_0x9197('0x35')];_0x2569f8[_0x9197('0xb')][_0x9197('0x36')]=_0x2b3b99[_0x9197('0x2d')][_0x9197('0x2e')]&&_0x2b3b99[_0x9197('0x2d')]['diagnosticInfo'][_0x9197('0x2f')]?_0x2b3b99[_0x9197('0x2d')][_0x9197('0x2e')][_0x9197('0x2f')][_0x9197('0x30')]['boolValue']:![];_0x2569f8['body']['DIALOGFLOWV2_INTENTNAME']=_0x2b3b99[_0x9197('0x2d')][_0x9197('0x37')][_0x9197('0x38')];_0x2569f8[_0x9197('0xb')][_0x9197('0x39')]=_0x2b3b99[_0x9197('0x2d')]['intent'][_0x9197('0x3a')];_0x2569f8[_0x9197('0xb')][_0x9197('0x3b')]=_0x2b3b99[_0x9197('0x2d')]['intent']['isFallback'];_0x2569f8[_0x9197('0xb')][_0x9197('0x3c')]=_0x2b3b99[_0x9197('0x2d')][_0x9197('0x3d')];_0x2569f8[_0x9197('0xb')]['DIALOGFLOWV2_QUERYTEXT']=_0x2b3b99[_0x9197('0x2d')][_0x9197('0x3e')];_0x2569f8[_0x9197('0xb')][_0x9197('0x3f')]=_0x2b3b99[_0x9197('0x2d')]['intentDetectionConfidence'];_0x51796c[_0x9197('0x40')]='dialogflowV2';_0x51796c['providerResponse']=JSON[_0x9197('0x12')](_0x589247);var _0x3dc769=[];for(var _0x4e55f5=0x0;_0x4e55f5<_0x589247[_0x9197('0x41')];_0x4e55f5++){var _0x3e0604=_0x589247[_0x4e55f5];if(_0x3e0604&&_0x3e0604[_0x9197('0x2d')]&&_0x3e0604[_0x9197('0x2d')][_0x9197('0x42')]){_0x3dc769[_0x9197('0x43')](createMessage(_0x16124d,_0x4ff4da,_0x51796c,_0x3e0604[_0x9197('0x2d')][_0x9197('0x42')]));}}return Promise['all'](_0x3dc769)[_0x9197('0x27')](function(){if(_0x17aa63){_0x21dade[_0x9197('0x17')]();}else{_0x21dade[_0x9197('0x29')]();}})[_0x9197('0x10')](function(_0x385e85){logger[_0x9197('0x11')](_0x9197('0xf'),_0x16124d,JSON['stringify'](_0x385e85));_0x21dade[_0x9197('0x17')]();});}})[_0x9197('0x10')](function(_0x31b066){logger[_0x9197('0x11')](_0x9197('0xf'),_0x16124d,_0x31b066[_0x9197('0x44')],_0x31b066['stack']);_0x21dade[_0x9197('0x17')]();});}}catch(_0x45829e){logger[_0x9197('0x11')](_0x9197('0xf'),_0x16124d,JSON[_0x9197('0x12')](_0x45829e));_0x21dade[_0x9197('0x29')]();}};};