Built motion from commit b0a9a629.|2.6.33
[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 _0xadad=['../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','Message','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','format','YYYY-MM-DD\x20HH:mm:ss','channel','phone','chat','account','upperFirst','InteractionId','created','isEmpty','body','getMustacheRender','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','SessionsClient','sessionPath','message','detectIntent','length','dialogflowV2','queryResult','fields','diagnosticInfo','end_conversation','DIALOGFLOWV2_ACTION','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','DIALOGFLOWV2_ENDCONVERSATION','boolValue','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','intentDetectionConfidence','providerName','providerResponse','push','fulfillmentText','all','stack','lodash','dialogflow','md5','bluebird','../../../../config/logger','routing'];(function(_0x59da4a,_0x2dcc23){var _0x580cee=function(_0x7f81fb){while(--_0x7f81fb){_0x59da4a['push'](_0x59da4a['shift']());}};_0x580cee(++_0x2dcc23);}(_0xadad,0x86));var _0xdada=function(_0x3c0569,_0x11da9f){_0x3c0569=_0x3c0569-0x0;var _0x142524=_0xadad[_0x3c0569];return _0x142524;};'use strict';var _=require(_0xdada('0x0'));var dialogflow=require(_0xdada('0x1'));var md5=require(_0xdada('0x2'));var moment=require('moment');var Promise=require(_0xdada('0x3'));var logger=require(_0xdada('0x4'))(_0xdada('0x5'));var utils=require('./utils');var rpc={'chatMessage':require(_0xdada('0x6')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xdada('0x7')),'smsMessage':require(_0xdada('0x8')),'faxMessage':require(_0xdada('0x9')),'whatsappMessage':require(_0xdada('0xa'))};function createMessage(_0x50544e,_0x2fa6ea,_0x25c85a,_0x1079e9){return new Promise(function(_0x594244,_0x4cb966){var _0x32ee50=_[_0xdada('0xb')](_0x25c85a);_0x32ee50['body']=_0x1079e9;return rpc[_0x2fa6ea+_0xdada('0xc')][_0xdada('0xd')](_0x32ee50)[_0xdada('0xe')](function(){logger[_0xdada('0xf')](_0xdada('0x10'),_0x50544e,_0x32ee50['body']);_0x594244();})[_0xdada('0x11')](function(_0x2e8404){logger[_0xdada('0x12')](_0xdada('0x10'),_0x50544e,JSON[_0xdada('0x13')](_0x2e8404));_0x4cb966(_0x2e8404);});});}exports[_0xdada('0x14')]=function(_0xae1b87,_0xb9b98e){return function(_0x35e902){try{if(!_['isNil'](this[_0xdada('0x15')][_0xdada('0x16')])){logger[_0xdada('0xf')](_0xdada('0x10'),_0xae1b87,_0xdada('0x17'));return _0x35e902[_0xdada('0x18')]();}var _0x22975a={'ContactId':this['contact']['id'],'sentAt':moment()[_0xdada('0x19')](_0xdada('0x1a')),'direction':'out'};if(this[_0xdada('0x1b')]==='sms'||this['channel']==='whatsapp'){_0x22975a[_0xdada('0x1c')]=this['interaction']['phone'];}var _0x1043ae=this['channel'];if(_0x1043ae===_0xdada('0x1d')){_0x22975a['ChatWebsiteId']=this[_0xdada('0x1e')]['id'];}else{_0x22975a[_['upperFirst'](_0x1043ae)+'AccountId']=this[_0xdada('0x1e')]['id'];}_0x22975a[_[_0xdada('0x1f')](_0x1043ae)+_0xdada('0x20')]=this[_0xdada('0x15')]['id'];if(this[_0xdada('0x15')][_0xdada('0x21')]){var _0x1e8da1=_0xb9b98e[0x4];if(!_[_0xdada('0x22')](_0x1e8da1)){_0x22975a[_0xdada('0x23')]=utils[_0xdada('0x24')](_0x1e8da1,this);return rpc[_0x1043ae+_0xdada('0xc')][_0xdada('0xd')](_0x22975a)[_0xdada('0xe')](function(_0x11477d){logger[_0xdada('0xf')](_0xdada('0x10'),_0xae1b87,_0x22975a[_0xdada('0x23')]);})[_0xdada('0x11')](function(_0x38b5b7){logger[_0xdada('0x12')](_0xdada('0x10'),_0xae1b87,JSON[_0xdada('0x13')](_0x38b5b7));})['finally'](function(){logger[_0xdada('0xf')](_0xdada('0x25'),_0xae1b87);_0x35e902[_0xdada('0x26')]();});}else{logger['info'](_0xdada('0x27'),_0xae1b87);_0x35e902[_0xdada('0x26')]();}}else{var _0x47e79f=this;var _0x46f175=_0xb9b98e[0x2]['replace'](/\\n/g,'\x0a');var _0x160414={'credentials':{'private_key':_0x46f175,'client_email':_0xb9b98e[0x1]}};var _0x31f455=new dialogflow[(_0xdada('0x28'))](_0x160414);var _0x469c99=_0x31f455[_0xdada('0x29')](_0xb9b98e[0x0],md5(_0x47e79f[_0xdada('0x15')]['id']));var _0x907d0c={'session':_0x469c99,'queryInput':{'text':{'text':_0x47e79f[_0xdada('0x2a')][_0xdada('0x23')],'languageCode':_0xb9b98e[0x3]||'en'}}};return _0x31f455[_0xdada('0x2b')](_0x907d0c)[_0xdada('0xe')](function(_0x5d69fb){if(_0x5d69fb&&_0x5d69fb[_0xdada('0x2c')]){_0x47e79f[_0xdada('0x23')][_0xdada('0x2d')]=_0x5d69fb;var _0x2d8287=_0x5d69fb[0x0];var _0x38686d=_0x2d8287[_0xdada('0x2e')]['diagnosticInfo']&&_0x2d8287[_0xdada('0x2e')]['diagnosticInfo'][_0xdada('0x2f')]?_0x2d8287[_0xdada('0x2e')][_0xdada('0x30')]['fields'][_0xdada('0x31')]['boolValue']:![];_0x47e79f[_0xdada('0x23')][_0xdada('0x32')]=_0x2d8287[_0xdada('0x2e')]['action'];_0x47e79f['body'][_0xdada('0x33')]=_0x2d8287['queryResult']['allRequiredParamsPresent'];_0x47e79f[_0xdada('0x23')][_0xdada('0x34')]=_0x2d8287['queryResult'][_0xdada('0x30')]&&_0x2d8287[_0xdada('0x2e')][_0xdada('0x30')][_0xdada('0x2f')]?_0x2d8287[_0xdada('0x2e')][_0xdada('0x30')][_0xdada('0x2f')]['end_conversation'][_0xdada('0x35')]:![];_0x47e79f[_0xdada('0x23')][_0xdada('0x36')]=_0x2d8287[_0xdada('0x2e')][_0xdada('0x37')][_0xdada('0x38')];_0x47e79f['body'][_0xdada('0x39')]=_0x2d8287['queryResult'][_0xdada('0x37')]['displayName'];_0x47e79f['body'][_0xdada('0x3a')]=_0x2d8287[_0xdada('0x2e')][_0xdada('0x37')][_0xdada('0x3b')];_0x47e79f[_0xdada('0x23')]['DIALOGFLOWV2_LANGUAGECODE']=_0x2d8287[_0xdada('0x2e')][_0xdada('0x3c')];_0x47e79f[_0xdada('0x23')][_0xdada('0x3d')]=_0x2d8287[_0xdada('0x2e')][_0xdada('0x3e')];_0x47e79f['body']['DIALOGFLOWV2_SCORE']=_0x2d8287[_0xdada('0x2e')][_0xdada('0x3f')];_0x22975a[_0xdada('0x40')]=_0xdada('0x2d');_0x22975a[_0xdada('0x41')]=JSON['stringify'](_0x5d69fb);var _0x56340b=[];for(var _0x33ee5d=0x0;_0x33ee5d<_0x5d69fb['length'];_0x33ee5d++){var _0x21d7d7=_0x5d69fb[_0x33ee5d];if(_0x21d7d7&&_0x21d7d7[_0xdada('0x2e')]&&_0x21d7d7[_0xdada('0x2e')]['fulfillmentText']){_0x56340b[_0xdada('0x42')](createMessage(_0xae1b87,_0x1043ae,_0x22975a,_0x21d7d7[_0xdada('0x2e')][_0xdada('0x43')]));}}return Promise[_0xdada('0x44')](_0x56340b)[_0xdada('0xe')](function(){if(_0x38686d){_0x35e902[_0xdada('0x18')]();}else{_0x35e902[_0xdada('0x26')]();}})[_0xdada('0x11')](function(_0x4128f5){logger['error'](_0xdada('0x10'),_0xae1b87,JSON[_0xdada('0x13')](_0x4128f5));_0x35e902[_0xdada('0x18')]();});}})[_0xdada('0x11')](function(_0x48d285){logger[_0xdada('0x12')]('[%s][DIALOGFLOWV2]\x20%s',_0xae1b87,_0x48d285[_0xdada('0x2a')],_0x48d285[_0xdada('0x45')]);_0x35e902[_0xdada('0x18')]();});}}catch(_0x13ae8b){logger[_0xdada('0x12')](_0xdada('0x10'),_0xae1b87,JSON[_0xdada('0x13')](_0x13ae8b));_0x35e902[_0xdada('0x26')]();}};};