83698e33dfb128590a87f8828af3b2ef99722e8c
[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 _0xb56f=['upperFirst','InteractionId','created','isEmpty','getMustacheRender','[%s][DIALOGFLOWV2]\x20%s','finally','stop','replace','SessionsClient','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','intentDetectionConfidence','fulfillmentText','all','next','lodash','dialogflow','md5','bluebird','../../../../config/logger','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/whatsappMessage','clone','Message','create','then','info','body','catch','error','stringify','consequence','isNil','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','format','YYYY-MM-DD\x20HH:mm:ss','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','AccountId'];(function(_0x5018d5,_0x3a5a19){var _0x56e386=function(_0x329002){while(--_0x329002){_0x5018d5['push'](_0x5018d5['shift']());}};_0x56e386(++_0x3a5a19);}(_0xb56f,0x141));var _0xfb56=function(_0x4c25c2,_0x51ec8b){_0x4c25c2=_0x4c25c2-0x0;var _0x360ecd=_0xb56f[_0x4c25c2];return _0x360ecd;};'use strict';var _=require(_0xfb56('0x0'));var dialogflow=require(_0xfb56('0x1'));var md5=require(_0xfb56('0x2'));var moment=require('moment');var Promise=require(_0xfb56('0x3'));var logger=require(_0xfb56('0x4'))('routing');var utils=require(_0xfb56('0x5'));var rpc={'chatMessage':require(_0xfb56('0x6')),'openchannelMessage':require(_0xfb56('0x7')),'mailMessage':require(_0xfb56('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xfb56('0x9'))};function createMessage(_0x5b3cbb,_0x58d1b2,_0x2e35ff,_0x1af6fe){return new Promise(function(_0x2cb6b2,_0x13350d){var _0x2c0d52=_[_0xfb56('0xa')](_0x2e35ff);_0x2c0d52['body']=_0x1af6fe;return rpc[_0x58d1b2+_0xfb56('0xb')][_0xfb56('0xc')](_0x2c0d52)[_0xfb56('0xd')](function(){logger[_0xfb56('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x5b3cbb,_0x2c0d52[_0xfb56('0xf')]);_0x2cb6b2();})[_0xfb56('0x10')](function(_0x3d825b){logger[_0xfb56('0x11')]('[%s][DIALOGFLOWV2]\x20%s',_0x5b3cbb,JSON[_0xfb56('0x12')](_0x3d825b));_0x13350d(_0x3d825b);});});}exports[_0xfb56('0x13')]=function(_0x2ec9dd,_0x5d681b){return function(_0x55e877){try{if(!_[_0xfb56('0x14')](this[_0xfb56('0x15')][_0xfb56('0x16')])){logger[_0xfb56('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x2ec9dd,_0xfb56('0x17'));return _0x55e877['next']();}var _0x1d14af={'ContactId':this['contact']['id'],'sentAt':moment()[_0xfb56('0x18')](_0xfb56('0x19')),'direction':'out'};if(this[_0xfb56('0x1a')]===_0xfb56('0x1b')||this[_0xfb56('0x1a')]===_0xfb56('0x1c')){_0x1d14af[_0xfb56('0x1d')]=this[_0xfb56('0x15')][_0xfb56('0x1d')];}var _0x19d0b7=this[_0xfb56('0x1a')];if(_0x19d0b7===_0xfb56('0x1e')){_0x1d14af[_0xfb56('0x1f')]=this[_0xfb56('0x20')]['id'];}else{_0x1d14af[_['upperFirst'](_0x19d0b7)+_0xfb56('0x21')]=this[_0xfb56('0x20')]['id'];}_0x1d14af[_[_0xfb56('0x22')](_0x19d0b7)+_0xfb56('0x23')]=this[_0xfb56('0x15')]['id'];if(this['interaction'][_0xfb56('0x24')]){var _0x10c746=_0x5d681b[0x4];if(!_[_0xfb56('0x25')](_0x10c746)){_0x1d14af[_0xfb56('0xf')]=utils[_0xfb56('0x26')](_0x10c746,this);return rpc[_0x19d0b7+_0xfb56('0xb')][_0xfb56('0xc')](_0x1d14af)[_0xfb56('0xd')](function(_0x8de857){logger[_0xfb56('0xe')](_0xfb56('0x27'),_0x2ec9dd,_0x1d14af[_0xfb56('0xf')]);})[_0xfb56('0x10')](function(_0xafb0e9){logger[_0xfb56('0x11')]('[%s][DIALOGFLOWV2]\x20%s',_0x2ec9dd,JSON[_0xfb56('0x12')](_0xafb0e9));})[_0xfb56('0x28')](function(){logger[_0xfb56('0xe')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x2ec9dd);_0x55e877[_0xfb56('0x29')]();});}else{logger['info']('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x2ec9dd);_0x55e877[_0xfb56('0x29')]();}}else{var _0x5b2582=this;var _0x5778a0=_0x5d681b[0x2][_0xfb56('0x2a')](/\\n/g,'\x0a');var _0x2a9cff={'credentials':{'private_key':_0x5778a0,'client_email':_0x5d681b[0x1]}};var _0x3706b7=new dialogflow[(_0xfb56('0x2b'))](_0x2a9cff);var _0x1b2fd3=_0x3706b7['sessionPath'](_0x5d681b[0x0],md5(_0x5b2582[_0xfb56('0x15')]['id']));var _0x1e0d4d={'session':_0x1b2fd3,'queryInput':{'text':{'text':_0x5b2582[_0xfb56('0x2c')][_0xfb56('0xf')],'languageCode':_0x5d681b[0x3]||'en'}}};return _0x3706b7[_0xfb56('0x2d')](_0x1e0d4d)['then'](function(_0x284c12){if(_0x284c12&&_0x284c12[_0xfb56('0x2e')]){_0x5b2582['body'][_0xfb56('0x2f')]=_0x284c12;var _0x341bb2=_0x284c12[0x0];var _0x304da3=_0x341bb2[_0xfb56('0x30')][_0xfb56('0x31')]&&_0x341bb2[_0xfb56('0x30')][_0xfb56('0x31')][_0xfb56('0x32')]?_0x341bb2[_0xfb56('0x30')][_0xfb56('0x31')]['fields'][_0xfb56('0x33')][_0xfb56('0x34')]:![];_0x5b2582[_0xfb56('0xf')][_0xfb56('0x35')]=_0x341bb2['queryResult']['action'];_0x5b2582['body'][_0xfb56('0x36')]=_0x341bb2['queryResult'][_0xfb56('0x37')];_0x5b2582[_0xfb56('0xf')][_0xfb56('0x38')]=_0x341bb2[_0xfb56('0x30')][_0xfb56('0x31')]&&_0x341bb2[_0xfb56('0x30')][_0xfb56('0x31')][_0xfb56('0x32')]?_0x341bb2[_0xfb56('0x30')][_0xfb56('0x31')][_0xfb56('0x32')][_0xfb56('0x33')][_0xfb56('0x34')]:![];_0x5b2582[_0xfb56('0xf')][_0xfb56('0x39')]=_0x341bb2[_0xfb56('0x30')][_0xfb56('0x3a')][_0xfb56('0x3b')];_0x5b2582[_0xfb56('0xf')][_0xfb56('0x3c')]=_0x341bb2[_0xfb56('0x30')][_0xfb56('0x3a')][_0xfb56('0x3d')];_0x5b2582['body'][_0xfb56('0x3e')]=_0x341bb2[_0xfb56('0x30')][_0xfb56('0x3a')][_0xfb56('0x3f')];_0x5b2582[_0xfb56('0xf')]['DIALOGFLOWV2_LANGUAGECODE']=_0x341bb2[_0xfb56('0x30')][_0xfb56('0x40')];_0x5b2582[_0xfb56('0xf')][_0xfb56('0x41')]=_0x341bb2[_0xfb56('0x30')][_0xfb56('0x42')];_0x5b2582[_0xfb56('0xf')]['DIALOGFLOWV2_SCORE']=_0x341bb2['queryResult'][_0xfb56('0x43')];_0x1d14af['providerName']=_0xfb56('0x2f');_0x1d14af['providerResponse']=JSON[_0xfb56('0x12')](_0x284c12);var _0x18b540=[];for(var _0x5ae7da=0x0;_0x5ae7da<_0x284c12[_0xfb56('0x2e')];_0x5ae7da++){var _0xb1115c=_0x284c12[_0x5ae7da];if(_0xb1115c&&_0xb1115c[_0xfb56('0x30')]&&_0xb1115c[_0xfb56('0x30')][_0xfb56('0x44')]){_0x18b540['push'](createMessage(_0x2ec9dd,_0x19d0b7,_0x1d14af,_0xb1115c[_0xfb56('0x30')][_0xfb56('0x44')]));}}return Promise[_0xfb56('0x45')](_0x18b540)['then'](function(){if(_0x304da3){_0x55e877['next']();}else{_0x55e877[_0xfb56('0x29')]();}})[_0xfb56('0x10')](function(_0x3f3ebe){logger[_0xfb56('0x11')](_0xfb56('0x27'),_0x2ec9dd,JSON['stringify'](_0x3f3ebe));_0x55e877[_0xfb56('0x46')]();});}})[_0xfb56('0x10')](function(_0x2cc3ab){logger[_0xfb56('0x11')](_0xfb56('0x27'),_0x2ec9dd,_0x2cc3ab[_0xfb56('0x2c')]);_0x55e877['next']();});}}catch(_0x59ec29){logger[_0xfb56('0x11')](_0xfb56('0x27'),_0x2ec9dd,JSON['stringify'](_0x59ec29));_0x55e877[_0xfb56('0x29')]();}};};