Built motion from commit 753c950e.|2.5.42
[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 _0xbf1e=['sms','whatsapp','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','isEmpty','getMustacheRender','finally','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','SessionsClient','sessionPath','message','detectIntent','length','dialogflowV2','diagnosticInfo','queryResult','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerResponse','fulfillmentText','all','next','md5','bluebird','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','body','Message','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','isNil','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel'];(function(_0x27ee1c,_0x5d93b7){var _0x226db3=function(_0x55f2a2){while(--_0x55f2a2){_0x27ee1c['push'](_0x27ee1c['shift']());}};_0x226db3(++_0x5d93b7);}(_0xbf1e,0x75));var _0xebf1=function(_0x26a0d4,_0x33ceb1){_0x26a0d4=_0x26a0d4-0x0;var _0x3e1ed4=_0xbf1e[_0x26a0d4];return _0x3e1ed4;};'use strict';var _=require('lodash');var dialogflow=require('dialogflow');var md5=require(_0xebf1('0x0'));var moment=require('moment');var Promise=require(_0xebf1('0x1'));var logger=require(_0xebf1('0x2'))(_0xebf1('0x3'));var utils=require('./utils');var rpc={'chatMessage':require(_0xebf1('0x4')),'openchannelMessage':require(_0xebf1('0x5')),'mailMessage':require(_0xebf1('0x6')),'smsMessage':require(_0xebf1('0x7')),'faxMessage':require(_0xebf1('0x8')),'whatsappMessage':require(_0xebf1('0x9'))};function createMessage(_0x3019ec,_0x1dd664,_0x5d58a7,_0x3a5521){return new Promise(function(_0x2ea308,_0x11f7b0){var _0x26c6da=_['clone'](_0x5d58a7);_0x26c6da[_0xebf1('0xa')]=_0x3a5521;return rpc[_0x1dd664+_0xebf1('0xb')][_0xebf1('0xc')](_0x26c6da)[_0xebf1('0xd')](function(){logger[_0xebf1('0xe')](_0xebf1('0xf'),_0x3019ec,_0x26c6da[_0xebf1('0xa')]);_0x2ea308();})[_0xebf1('0x10')](function(_0x21453e){logger[_0xebf1('0x11')](_0xebf1('0xf'),_0x3019ec,JSON[_0xebf1('0x12')](_0x21453e));_0x11f7b0(_0x21453e);});});}exports[_0xebf1('0x13')]=function(_0x385d25,_0x7686a7){return function(_0xd949){try{if(!_[_0xebf1('0x14')](this[_0xebf1('0x15')][_0xebf1('0x16')])){logger[_0xebf1('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x385d25,_0xebf1('0x17'));return _0xd949['next']();}var _0x40e8f7={'ContactId':this[_0xebf1('0x18')]['id'],'sentAt':moment()[_0xebf1('0x19')](_0xebf1('0x1a')),'direction':_0xebf1('0x1b')};if(this[_0xebf1('0x1c')]===_0xebf1('0x1d')||this[_0xebf1('0x1c')]===_0xebf1('0x1e')){_0x40e8f7[_0xebf1('0x1f')]=this[_0xebf1('0x15')][_0xebf1('0x1f')];}var _0x143984=this[_0xebf1('0x1c')];if(_0x143984===_0xebf1('0x20')){_0x40e8f7[_0xebf1('0x21')]=this['account']['id'];}else{_0x40e8f7[_[_0xebf1('0x22')](_0x143984)+_0xebf1('0x23')]=this[_0xebf1('0x24')]['id'];}_0x40e8f7[_['upperFirst'](_0x143984)+_0xebf1('0x25')]=this[_0xebf1('0x15')]['id'];if(this[_0xebf1('0x15')]['created']){var _0x3fea69=_0x7686a7[0x4];if(!_[_0xebf1('0x26')](_0x3fea69)){_0x40e8f7['body']=utils[_0xebf1('0x27')](_0x3fea69,this);return rpc[_0x143984+_0xebf1('0xb')][_0xebf1('0xc')](_0x40e8f7)[_0xebf1('0xd')](function(_0x44e818){logger[_0xebf1('0xe')](_0xebf1('0xf'),_0x385d25,_0x40e8f7['body']);})[_0xebf1('0x10')](function(_0x3415c5){logger[_0xebf1('0x11')]('[%s][DIALOGFLOWV2]\x20%s',_0x385d25,JSON['stringify'](_0x3415c5));})[_0xebf1('0x28')](function(){logger[_0xebf1('0xe')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x385d25);_0xd949[_0xebf1('0x29')]();});}else{logger[_0xebf1('0xe')](_0xebf1('0x2a'),_0x385d25);_0xd949[_0xebf1('0x29')]();}}else{var _0x42d62f=this;var _0x5ca250=_0x7686a7[0x2]['replace'](/\\n/g,'\x0a');var _0x132ff3={'credentials':{'private_key':_0x5ca250,'client_email':_0x7686a7[0x1]}};var _0x83bdcd=new dialogflow[(_0xebf1('0x2b'))](_0x132ff3);var _0x23988d=_0x83bdcd[_0xebf1('0x2c')](_0x7686a7[0x0],md5(_0x42d62f[_0xebf1('0x15')]['id']));var _0x4d9bde={'session':_0x23988d,'queryInput':{'text':{'text':_0x42d62f[_0xebf1('0x2d')][_0xebf1('0xa')],'languageCode':_0x7686a7[0x3]||'en'}}};return _0x83bdcd[_0xebf1('0x2e')](_0x4d9bde)[_0xebf1('0xd')](function(_0xbfcbc0){if(_0xbfcbc0&&_0xbfcbc0[_0xebf1('0x2f')]){_0x42d62f[_0xebf1('0xa')][_0xebf1('0x30')]=_0xbfcbc0;var _0x305263=_0xbfcbc0[0x0];var _0x4a08e9=_0x305263['queryResult'][_0xebf1('0x31')]&&_0x305263[_0xebf1('0x32')]['diagnosticInfo']['fields']?_0x305263['queryResult'][_0xebf1('0x31')][_0xebf1('0x33')][_0xebf1('0x34')][_0xebf1('0x35')]:![];_0x42d62f[_0xebf1('0xa')][_0xebf1('0x36')]=_0x305263[_0xebf1('0x32')][_0xebf1('0x37')];_0x42d62f[_0xebf1('0xa')][_0xebf1('0x38')]=_0x305263[_0xebf1('0x32')][_0xebf1('0x39')];_0x42d62f[_0xebf1('0xa')][_0xebf1('0x3a')]=_0x305263[_0xebf1('0x32')][_0xebf1('0x31')]&&_0x305263[_0xebf1('0x32')][_0xebf1('0x31')]['fields']?_0x305263[_0xebf1('0x32')]['diagnosticInfo'][_0xebf1('0x33')][_0xebf1('0x34')][_0xebf1('0x35')]:![];_0x42d62f['body']['DIALOGFLOWV2_INTENTNAME']=_0x305263[_0xebf1('0x32')][_0xebf1('0x3b')][_0xebf1('0x3c')];_0x42d62f['body'][_0xebf1('0x3d')]=_0x305263[_0xebf1('0x32')][_0xebf1('0x3b')][_0xebf1('0x3e')];_0x42d62f[_0xebf1('0xa')]['DIALOGFLOWV2_ISFALLBACKINTENT']=_0x305263[_0xebf1('0x32')][_0xebf1('0x3b')][_0xebf1('0x3f')];_0x42d62f[_0xebf1('0xa')][_0xebf1('0x40')]=_0x305263[_0xebf1('0x32')][_0xebf1('0x41')];_0x42d62f['body']['DIALOGFLOWV2_QUERYTEXT']=_0x305263[_0xebf1('0x32')][_0xebf1('0x42')];_0x42d62f[_0xebf1('0xa')][_0xebf1('0x43')]=_0x305263[_0xebf1('0x32')][_0xebf1('0x44')];_0x40e8f7['providerName']='dialogflowV2';_0x40e8f7[_0xebf1('0x45')]=JSON[_0xebf1('0x12')](_0xbfcbc0);var _0x7e6cdd=[];for(var _0x5ad38b=0x0;_0x5ad38b<_0xbfcbc0[_0xebf1('0x2f')];_0x5ad38b++){var _0x767a7e=_0xbfcbc0[_0x5ad38b];if(_0x767a7e&&_0x767a7e['queryResult']&&_0x767a7e[_0xebf1('0x32')][_0xebf1('0x46')]){_0x7e6cdd['push'](createMessage(_0x385d25,_0x143984,_0x40e8f7,_0x767a7e['queryResult'][_0xebf1('0x46')]));}}return Promise[_0xebf1('0x47')](_0x7e6cdd)[_0xebf1('0xd')](function(){if(_0x4a08e9){_0xd949[_0xebf1('0x48')]();}else{_0xd949[_0xebf1('0x29')]();}})[_0xebf1('0x10')](function(_0x2c5778){logger[_0xebf1('0x11')](_0xebf1('0xf'),_0x385d25,JSON[_0xebf1('0x12')](_0x2c5778));_0xd949[_0xebf1('0x48')]();});}})[_0xebf1('0x10')](function(_0x554375){logger[_0xebf1('0x11')](_0xebf1('0xf'),_0x385d25,_0x554375[_0xebf1('0x2d')]);_0xd949['next']();});}}catch(_0x352901){logger['error'](_0xebf1('0xf'),_0x385d25,JSON['stringify'](_0x352901));_0xd949[_0xebf1('0x29')]();}};};