Built motion from commit 092f8824.|2.5.49
[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 _0xdb23=['all','next','message','lodash','dialogflow','moment','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','Message','create','info','[%s][DIALOGFLOWV2]\x20%s','catch','stringify','consequence','isNil','interaction','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','format','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','then','error','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','SessionsClient','sessionPath','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','DIALOGFLOWV2_ENDCONVERSATION','intent','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','fulfillmentText'];(function(_0x1e9424,_0x191cba){var _0x1bd96c=function(_0x5e952d){while(--_0x5e952d){_0x1e9424['push'](_0x1e9424['shift']());}};_0x1bd96c(++_0x191cba);}(_0xdb23,0xd5));var _0x3db2=function(_0x1a7203,_0x247851){_0x1a7203=_0x1a7203-0x0;var _0x36e809=_0xdb23[_0x1a7203];return _0x36e809;};'use strict';var _=require(_0x3db2('0x0'));var dialogflow=require(_0x3db2('0x1'));var md5=require('md5');var moment=require(_0x3db2('0x2'));var Promise=require('bluebird');var logger=require('../../../../config/logger')(_0x3db2('0x3'));var utils=require(_0x3db2('0x4'));var rpc={'chatMessage':require(_0x3db2('0x5')),'openchannelMessage':require(_0x3db2('0x6')),'mailMessage':require(_0x3db2('0x7')),'smsMessage':require(_0x3db2('0x8')),'faxMessage':require(_0x3db2('0x9')),'whatsappMessage':require(_0x3db2('0xa'))};function createMessage(_0xd7f92d,_0x31402c,_0x565da3,_0x5cbd64){return new Promise(function(_0xba99cd,_0x1463d1){var _0x3c7ded=_[_0x3db2('0xb')](_0x565da3);_0x3c7ded[_0x3db2('0xc')]=_0x5cbd64;return rpc[_0x31402c+_0x3db2('0xd')][_0x3db2('0xe')](_0x3c7ded)['then'](function(){logger[_0x3db2('0xf')](_0x3db2('0x10'),_0xd7f92d,_0x3c7ded[_0x3db2('0xc')]);_0xba99cd();})[_0x3db2('0x11')](function(_0x14058b){logger['error'](_0x3db2('0x10'),_0xd7f92d,JSON[_0x3db2('0x12')](_0x14058b));_0x1463d1(_0x14058b);});});}exports[_0x3db2('0x13')]=function(_0x220121,_0x296302){return function(_0x25a11e){try{if(!_[_0x3db2('0x14')](this[_0x3db2('0x15')]['UserId'])){logger[_0x3db2('0xf')](_0x3db2('0x10'),_0x220121,_0x3db2('0x16'));return _0x25a11e['next']();}var _0x565e94={'ContactId':this['contact']['id'],'sentAt':moment()[_0x3db2('0x17')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':'out'};if(this[_0x3db2('0x18')]===_0x3db2('0x19')||this['channel']===_0x3db2('0x1a')){_0x565e94[_0x3db2('0x1b')]=this[_0x3db2('0x15')]['phone'];}var _0x440f08=this[_0x3db2('0x18')];if(_0x440f08===_0x3db2('0x1c')){_0x565e94[_0x3db2('0x1d')]=this[_0x3db2('0x1e')]['id'];}else{_0x565e94[_[_0x3db2('0x1f')](_0x440f08)+_0x3db2('0x20')]=this['account']['id'];}_0x565e94[_[_0x3db2('0x1f')](_0x440f08)+_0x3db2('0x21')]=this[_0x3db2('0x15')]['id'];if(this[_0x3db2('0x15')][_0x3db2('0x22')]){var _0x625c8d=_0x296302[0x4];if(!_[_0x3db2('0x23')](_0x625c8d)){_0x565e94[_0x3db2('0xc')]=utils['getMustacheRender'](_0x625c8d,this);return rpc[_0x440f08+_0x3db2('0xd')][_0x3db2('0xe')](_0x565e94)[_0x3db2('0x24')](function(_0x414573){logger['info'](_0x3db2('0x10'),_0x220121,_0x565e94['body']);})[_0x3db2('0x11')](function(_0xe208c3){logger[_0x3db2('0x25')](_0x3db2('0x10'),_0x220121,JSON[_0x3db2('0x12')](_0xe208c3));})[_0x3db2('0x26')](function(){logger[_0x3db2('0xf')](_0x3db2('0x27'),_0x220121);_0x25a11e[_0x3db2('0x28')]();});}else{logger['info'](_0x3db2('0x29'),_0x220121);_0x25a11e[_0x3db2('0x28')]();}}else{var _0x4ca7b7=this;var _0x4d3e90=_0x296302[0x2]['replace'](/\\n/g,'\x0a');var _0x3025c6={'credentials':{'private_key':_0x4d3e90,'client_email':_0x296302[0x1]}};var _0x52481d=new dialogflow[(_0x3db2('0x2a'))](_0x3025c6);var _0x41494b=_0x52481d[_0x3db2('0x2b')](_0x296302[0x0],md5(_0x4ca7b7[_0x3db2('0x15')]['id']));var _0x914c3f={'session':_0x41494b,'queryInput':{'text':{'text':_0x4ca7b7['message'][_0x3db2('0xc')],'languageCode':_0x296302[0x3]||'en'}}};return _0x52481d[_0x3db2('0x2c')](_0x914c3f)[_0x3db2('0x24')](function(_0x20b07a){if(_0x20b07a&&_0x20b07a[_0x3db2('0x2d')]){_0x4ca7b7[_0x3db2('0xc')][_0x3db2('0x2e')]=_0x20b07a;var _0x4fc86b=_0x20b07a[0x0];var _0x9248de=_0x4fc86b[_0x3db2('0x2f')][_0x3db2('0x30')]&&_0x4fc86b['queryResult'][_0x3db2('0x30')][_0x3db2('0x31')]?_0x4fc86b['queryResult'][_0x3db2('0x30')]['fields'][_0x3db2('0x32')][_0x3db2('0x33')]:![];_0x4ca7b7[_0x3db2('0xc')][_0x3db2('0x34')]=_0x4fc86b['queryResult'][_0x3db2('0x35')];_0x4ca7b7['body'][_0x3db2('0x36')]=_0x4fc86b[_0x3db2('0x2f')]['allRequiredParamsPresent'];_0x4ca7b7[_0x3db2('0xc')][_0x3db2('0x37')]=_0x4fc86b[_0x3db2('0x2f')][_0x3db2('0x30')]&&_0x4fc86b[_0x3db2('0x2f')][_0x3db2('0x30')][_0x3db2('0x31')]?_0x4fc86b['queryResult'][_0x3db2('0x30')][_0x3db2('0x31')]['end_conversation']['boolValue']:![];_0x4ca7b7[_0x3db2('0xc')]['DIALOGFLOWV2_INTENTNAME']=_0x4fc86b[_0x3db2('0x2f')][_0x3db2('0x38')]['name'];_0x4ca7b7['body'][_0x3db2('0x39')]=_0x4fc86b[_0x3db2('0x2f')][_0x3db2('0x38')][_0x3db2('0x3a')];_0x4ca7b7[_0x3db2('0xc')]['DIALOGFLOWV2_ISFALLBACKINTENT']=_0x4fc86b['queryResult'][_0x3db2('0x38')][_0x3db2('0x3b')];_0x4ca7b7[_0x3db2('0xc')]['DIALOGFLOWV2_LANGUAGECODE']=_0x4fc86b['queryResult'][_0x3db2('0x3c')];_0x4ca7b7['body'][_0x3db2('0x3d')]=_0x4fc86b[_0x3db2('0x2f')]['queryText'];_0x4ca7b7[_0x3db2('0xc')][_0x3db2('0x3e')]=_0x4fc86b[_0x3db2('0x2f')][_0x3db2('0x3f')];_0x565e94[_0x3db2('0x40')]=_0x3db2('0x2e');_0x565e94[_0x3db2('0x41')]=JSON['stringify'](_0x20b07a);var _0x5a7809=[];for(var _0x5cce0f=0x0;_0x5cce0f<_0x20b07a[_0x3db2('0x2d')];_0x5cce0f++){var _0x3a74b0=_0x20b07a[_0x5cce0f];if(_0x3a74b0&&_0x3a74b0[_0x3db2('0x2f')]&&_0x3a74b0[_0x3db2('0x2f')][_0x3db2('0x42')]){_0x5a7809['push'](createMessage(_0x220121,_0x440f08,_0x565e94,_0x3a74b0[_0x3db2('0x2f')][_0x3db2('0x42')]));}}return Promise[_0x3db2('0x43')](_0x5a7809)[_0x3db2('0x24')](function(){if(_0x9248de){_0x25a11e['next']();}else{_0x25a11e[_0x3db2('0x28')]();}})['catch'](function(_0xe81ee7){logger[_0x3db2('0x25')]('[%s][DIALOGFLOWV2]\x20%s',_0x220121,JSON[_0x3db2('0x12')](_0xe81ee7));_0x25a11e[_0x3db2('0x44')]();});}})[_0x3db2('0x11')](function(_0x3f3c57){logger[_0x3db2('0x25')](_0x3db2('0x10'),_0x220121,_0x3f3c57[_0x3db2('0x45')]);_0x25a11e[_0x3db2('0x44')]();});}}catch(_0x21bcca){logger[_0x3db2('0x25')]('[%s][DIALOGFLOWV2]\x20%s',_0x220121,JSON[_0x3db2('0x12')](_0x21bcca));_0x25a11e['stop']();}};};