034994882dc5b21bc5fc6cd3b8873ecf253f6cb6
[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 _0xe1b3=['Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','account','upperFirst','AccountId','InteractionId','isEmpty','getMustacheRender','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','detectIntent','then','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','providerName','fulfillmentText','push','all','message','stack','lodash','dialogflow','md5','bluebird','./utils','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','clone','body','Message','create','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','isNil','interaction'];(function(_0x5c6022,_0x5cd10b){var _0x4ab5af=function(_0x988aff){while(--_0x988aff){_0x5c6022['push'](_0x5c6022['shift']());}};_0x4ab5af(++_0x5cd10b);}(_0xe1b3,0x154));var _0x3e1b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe1b3[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x3e1b('0x0'));var dialogflow=require(_0x3e1b('0x1'));var md5=require(_0x3e1b('0x2'));var moment=require('moment');var Promise=require(_0x3e1b('0x3'));var logger=require('../../../../config/logger')('routing');var utils=require(_0x3e1b('0x4'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x3e1b('0x5')),'mailMessage':require(_0x3e1b('0x6')),'smsMessage':require(_0x3e1b('0x7')),'faxMessage':require(_0x3e1b('0x8')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x2ed7a9,_0x5bd2aa,_0x1df5c7,_0x36dd00){return new Promise(function(_0x7e0a25,_0x4a1d47){var _0x1fb0a5=_[_0x3e1b('0x9')](_0x1df5c7);_0x1fb0a5[_0x3e1b('0xa')]=_0x36dd00;return rpc[_0x5bd2aa+_0x3e1b('0xb')][_0x3e1b('0xc')](_0x1fb0a5)['then'](function(){logger[_0x3e1b('0xd')](_0x3e1b('0xe'),_0x2ed7a9,_0x1fb0a5[_0x3e1b('0xa')]);_0x7e0a25();})[_0x3e1b('0xf')](function(_0x301ac2){logger[_0x3e1b('0x10')](_0x3e1b('0xe'),_0x2ed7a9,JSON[_0x3e1b('0x11')](_0x301ac2));_0x4a1d47(_0x301ac2);});});}exports['consequence']=function(_0x3f880c,_0x1fa85d){return function(_0x244629){try{if(!_[_0x3e1b('0x12')](this[_0x3e1b('0x13')]['UserId'])){logger['info'](_0x3e1b('0xe'),_0x3f880c,_0x3e1b('0x14'));return _0x244629[_0x3e1b('0x15')]();}var _0x469fa1={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x3e1b('0x16')),'direction':_0x3e1b('0x17')};if(this[_0x3e1b('0x18')]===_0x3e1b('0x19')||this[_0x3e1b('0x18')]===_0x3e1b('0x1a')){_0x469fa1[_0x3e1b('0x1b')]=this[_0x3e1b('0x13')][_0x3e1b('0x1b')];}var _0x2701c0=this[_0x3e1b('0x18')];if(_0x2701c0===_0x3e1b('0x1c')){_0x469fa1['ChatWebsiteId']=this[_0x3e1b('0x1d')]['id'];}else{_0x469fa1[_[_0x3e1b('0x1e')](_0x2701c0)+_0x3e1b('0x1f')]=this[_0x3e1b('0x1d')]['id'];}_0x469fa1[_[_0x3e1b('0x1e')](_0x2701c0)+_0x3e1b('0x20')]=this[_0x3e1b('0x13')]['id'];if(this[_0x3e1b('0x13')]['created']){var _0x12a156=_0x1fa85d[0x4];if(!_[_0x3e1b('0x21')](_0x12a156)){_0x469fa1[_0x3e1b('0xa')]=utils[_0x3e1b('0x22')](_0x12a156,this);return rpc[_0x2701c0+_0x3e1b('0xb')][_0x3e1b('0xc')](_0x469fa1)['then'](function(_0x3896ed){logger[_0x3e1b('0xd')]('[%s][DIALOGFLOWV2]\x20%s',_0x3f880c,_0x469fa1[_0x3e1b('0xa')]);})[_0x3e1b('0xf')](function(_0x4c84b2){logger[_0x3e1b('0x10')](_0x3e1b('0xe'),_0x3f880c,JSON[_0x3e1b('0x11')](_0x4c84b2));})[_0x3e1b('0x23')](function(){logger[_0x3e1b('0xd')](_0x3e1b('0x24'),_0x3f880c);_0x244629[_0x3e1b('0x25')]();});}else{logger[_0x3e1b('0xd')](_0x3e1b('0x26'),_0x3f880c);_0x244629[_0x3e1b('0x25')]();}}else{var _0x1baf7a=this;var _0x245137=_0x1fa85d[0x2][_0x3e1b('0x27')](/\\n/g,'\x0a');var _0x471ed2={'credentials':{'private_key':_0x245137,'client_email':_0x1fa85d[0x1]}};var _0x4a50fd=new dialogflow[(_0x3e1b('0x28'))](_0x471ed2);var _0x338c4f=_0x4a50fd[_0x3e1b('0x29')](_0x1fa85d[0x0],md5(_0x1baf7a[_0x3e1b('0x13')]['id']));var _0x417117={'session':_0x338c4f,'queryInput':{'text':{'text':_0x1baf7a['message'][_0x3e1b('0xa')],'languageCode':_0x1fa85d[0x3]||'en'}}};return _0x4a50fd[_0x3e1b('0x2a')](_0x417117)[_0x3e1b('0x2b')](function(_0x4905fd){if(_0x4905fd&&_0x4905fd[_0x3e1b('0x2c')]){_0x1baf7a['body'][_0x3e1b('0x2d')]=_0x4905fd;var _0x5198ed=_0x4905fd[0x0];var _0x37cc93=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x2f')]&&_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x2f')]['fields']?_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x2f')][_0x3e1b('0x30')][_0x3e1b('0x31')][_0x3e1b('0x32')]:![];_0x1baf7a[_0x3e1b('0xa')][_0x3e1b('0x33')]=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x34')];_0x1baf7a['body']['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x35')];_0x1baf7a['body'][_0x3e1b('0x36')]=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x2f')]&&_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x2f')][_0x3e1b('0x30')]?_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x2f')][_0x3e1b('0x30')][_0x3e1b('0x31')]['boolValue']:![];_0x1baf7a[_0x3e1b('0xa')][_0x3e1b('0x37')]=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x38')][_0x3e1b('0x39')];_0x1baf7a[_0x3e1b('0xa')][_0x3e1b('0x3a')]=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x38')][_0x3e1b('0x3b')];_0x1baf7a[_0x3e1b('0xa')][_0x3e1b('0x3c')]=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x38')][_0x3e1b('0x3d')];_0x1baf7a['body']['DIALOGFLOWV2_LANGUAGECODE']=_0x5198ed['queryResult'][_0x3e1b('0x3e')];_0x1baf7a[_0x3e1b('0xa')][_0x3e1b('0x3f')]=_0x5198ed[_0x3e1b('0x2e')][_0x3e1b('0x40')];_0x1baf7a['body'][_0x3e1b('0x41')]=_0x5198ed[_0x3e1b('0x2e')]['intentDetectionConfidence'];_0x469fa1[_0x3e1b('0x42')]=_0x3e1b('0x2d');_0x469fa1['providerResponse']=JSON[_0x3e1b('0x11')](_0x4905fd);var _0x73ef97=[];for(var _0x42d6db=0x0;_0x42d6db<_0x4905fd['length'];_0x42d6db++){var _0x1adc28=_0x4905fd[_0x42d6db];if(_0x1adc28&&_0x1adc28[_0x3e1b('0x2e')]&&_0x1adc28[_0x3e1b('0x2e')][_0x3e1b('0x43')]){_0x73ef97[_0x3e1b('0x44')](createMessage(_0x3f880c,_0x2701c0,_0x469fa1,_0x1adc28[_0x3e1b('0x2e')][_0x3e1b('0x43')]));}}return Promise[_0x3e1b('0x45')](_0x73ef97)['then'](function(){if(_0x37cc93){_0x244629[_0x3e1b('0x15')]();}else{_0x244629['stop']();}})[_0x3e1b('0xf')](function(_0xa52b0d){logger['error'](_0x3e1b('0xe'),_0x3f880c,JSON[_0x3e1b('0x11')](_0xa52b0d));_0x244629['next']();});}})[_0x3e1b('0xf')](function(_0x23e8e2){logger[_0x3e1b('0x10')](_0x3e1b('0xe'),_0x3f880c,_0x23e8e2[_0x3e1b('0x46')],_0x23e8e2[_0x3e1b('0x47')]);_0x244629['next']();});}}catch(_0x40de40){logger[_0x3e1b('0x10')](_0x3e1b('0xe'),_0x3f880c,JSON[_0x3e1b('0x11')](_0x40de40));_0x244629[_0x3e1b('0x25')]();}};};