a67f3ea20c8ee056084044ccfdd5aec0aeab58dc
[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 _0xb7ac=['name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','length','fulfillmentText','push','all','dialogflow','md5','bluebird','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','Message','then','info','catch','error','UserId','[%s][DIALOGFLOWV2]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','interaction','chat','ChatWebsiteId','AccountId','account','InteractionId','created','isEmpty','getMustacheRender','create','stringify','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','message','dialogflowV2','diagnosticInfo','queryResult','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','intent'];(function(_0x83c716,_0x25152d){var _0xab9893=function(_0x9b3f0a){while(--_0x9b3f0a){_0x83c716['push'](_0x83c716['shift']());}};_0xab9893(++_0x25152d);}(_0xb7ac,0x1c7));var _0xcb7a=function(_0x2d276e,_0xeff4c8){_0x2d276e=_0x2d276e-0x0;var _0xb72406=_0xb7ac[_0x2d276e];return _0xb72406;};'use strict';var _=require('lodash');var dialogflow=require(_0xcb7a('0x0'));var md5=require(_0xcb7a('0x1'));var moment=require('moment');var Promise=require(_0xcb7a('0x2'));var logger=require(_0xcb7a('0x3'))(_0xcb7a('0x4'));var utils=require('./utils');var rpc={'chatMessage':require(_0xcb7a('0x5')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xcb7a('0x6')),'smsMessage':require(_0xcb7a('0x7')),'faxMessage':require(_0xcb7a('0x8')),'whatsappMessage':require(_0xcb7a('0x9'))};function createMessage(_0x74397c,_0x2ede25,_0x5de1f2,_0x86a2c2){return new Promise(function(_0x345e67,_0x286b6c){var _0x3d3ba1=_[_0xcb7a('0xa')](_0x5de1f2);_0x3d3ba1[_0xcb7a('0xb')]=_0x86a2c2;return rpc[_0x2ede25+_0xcb7a('0xc')]['create'](_0x3d3ba1)[_0xcb7a('0xd')](function(){logger[_0xcb7a('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x74397c,_0x3d3ba1[_0xcb7a('0xb')]);_0x345e67();})[_0xcb7a('0xf')](function(_0x358b90){logger[_0xcb7a('0x10')]('[%s][DIALOGFLOWV2]\x20%s',_0x74397c,JSON['stringify'](_0x358b90));_0x286b6c(_0x358b90);});});}exports['consequence']=function(_0x4bd434,_0x48a4ac){return function(_0x439796){try{if(!_['isNil'](this['interaction'][_0xcb7a('0x11')])){logger[_0xcb7a('0xe')](_0xcb7a('0x12'),_0x4bd434,_0xcb7a('0x13'));return _0x439796[_0xcb7a('0x14')]();}var _0x5ce3dd={'ContactId':this['contact']['id'],'sentAt':moment()[_0xcb7a('0x15')](_0xcb7a('0x16')),'direction':_0xcb7a('0x17')};if(this[_0xcb7a('0x18')]===_0xcb7a('0x19')||this[_0xcb7a('0x18')]===_0xcb7a('0x1a')){_0x5ce3dd[_0xcb7a('0x1b')]=this[_0xcb7a('0x1c')][_0xcb7a('0x1b')];}var _0x494747=this[_0xcb7a('0x18')];if(_0x494747===_0xcb7a('0x1d')){_0x5ce3dd[_0xcb7a('0x1e')]=this['account']['id'];}else{_0x5ce3dd[_['upperFirst'](_0x494747)+_0xcb7a('0x1f')]=this[_0xcb7a('0x20')]['id'];}_0x5ce3dd[_['upperFirst'](_0x494747)+_0xcb7a('0x21')]=this['interaction']['id'];if(this[_0xcb7a('0x1c')][_0xcb7a('0x22')]){var _0x43356e=_0x48a4ac[0x4];if(!_[_0xcb7a('0x23')](_0x43356e)){_0x5ce3dd[_0xcb7a('0xb')]=utils[_0xcb7a('0x24')](_0x43356e,this);return rpc[_0x494747+_0xcb7a('0xc')][_0xcb7a('0x25')](_0x5ce3dd)[_0xcb7a('0xd')](function(_0x37bc63){logger[_0xcb7a('0xe')](_0xcb7a('0x12'),_0x4bd434,_0x5ce3dd['body']);})[_0xcb7a('0xf')](function(_0x2c43d0){logger[_0xcb7a('0x10')](_0xcb7a('0x12'),_0x4bd434,JSON[_0xcb7a('0x26')](_0x2c43d0));})['finally'](function(){logger[_0xcb7a('0xe')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x4bd434);_0x439796[_0xcb7a('0x27')]();});}else{logger[_0xcb7a('0xe')](_0xcb7a('0x28'),_0x4bd434);_0x439796[_0xcb7a('0x27')]();}}else{var _0x41cb1e=this;var _0x471b4b=_0x48a4ac[0x2][_0xcb7a('0x29')](/\\n/g,'\x0a');var _0x4e803f={'credentials':{'private_key':_0x471b4b,'client_email':_0x48a4ac[0x1]}};var _0x469ab5=new dialogflow[(_0xcb7a('0x2a'))](_0x4e803f);var _0x1b4792=_0x469ab5[_0xcb7a('0x2b')](_0x48a4ac[0x0],md5(_0x41cb1e[_0xcb7a('0x1c')]['id']));var _0x2568bc={'session':_0x1b4792,'queryInput':{'text':{'text':_0x41cb1e[_0xcb7a('0x2c')][_0xcb7a('0xb')],'languageCode':_0x48a4ac[0x3]||'en'}}};return _0x469ab5['detectIntent'](_0x2568bc)[_0xcb7a('0xd')](function(_0x7f8be9){if(_0x7f8be9&&_0x7f8be9['length']){_0x41cb1e['body'][_0xcb7a('0x2d')]=_0x7f8be9;var _0x43a069=_0x7f8be9[0x0];var _0x49efd4=_0x43a069['queryResult'][_0xcb7a('0x2e')]&&_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x2e')][_0xcb7a('0x30')]?_0x43a069[_0xcb7a('0x2f')]['diagnosticInfo']['fields'][_0xcb7a('0x31')][_0xcb7a('0x32')]:![];_0x41cb1e[_0xcb7a('0xb')][_0xcb7a('0x33')]=_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x34')];_0x41cb1e[_0xcb7a('0xb')]['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x35')];_0x41cb1e[_0xcb7a('0xb')][_0xcb7a('0x36')]=_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x2e')]&&_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x2e')]['fields']?_0x43a069[_0xcb7a('0x2f')]['diagnosticInfo'][_0xcb7a('0x30')]['end_conversation'][_0xcb7a('0x32')]:![];_0x41cb1e[_0xcb7a('0xb')]['DIALOGFLOWV2_INTENTNAME']=_0x43a069['queryResult'][_0xcb7a('0x37')][_0xcb7a('0x38')];_0x41cb1e['body'][_0xcb7a('0x39')]=_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x37')][_0xcb7a('0x3a')];_0x41cb1e[_0xcb7a('0xb')][_0xcb7a('0x3b')]=_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x37')][_0xcb7a('0x3c')];_0x41cb1e[_0xcb7a('0xb')][_0xcb7a('0x3d')]=_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x3e')];_0x41cb1e[_0xcb7a('0xb')][_0xcb7a('0x3f')]=_0x43a069['queryResult'][_0xcb7a('0x40')];_0x41cb1e['body'][_0xcb7a('0x41')]=_0x43a069[_0xcb7a('0x2f')][_0xcb7a('0x42')];_0x5ce3dd[_0xcb7a('0x43')]=_0xcb7a('0x2d');_0x5ce3dd[_0xcb7a('0x44')]=JSON[_0xcb7a('0x26')](_0x7f8be9);var _0x26c13a=[];for(var _0x2d1014=0x0;_0x2d1014<_0x7f8be9[_0xcb7a('0x45')];_0x2d1014++){var _0x225f1f=_0x7f8be9[_0x2d1014];if(_0x225f1f&&_0x225f1f[_0xcb7a('0x2f')]&&_0x225f1f[_0xcb7a('0x2f')][_0xcb7a('0x46')]){_0x26c13a[_0xcb7a('0x47')](createMessage(_0x4bd434,_0x494747,_0x5ce3dd,_0x225f1f[_0xcb7a('0x2f')][_0xcb7a('0x46')]));}}return Promise[_0xcb7a('0x48')](_0x26c13a)['then'](function(){if(_0x49efd4){_0x439796[_0xcb7a('0x14')]();}else{_0x439796[_0xcb7a('0x27')]();}})['catch'](function(_0x4faad2){logger[_0xcb7a('0x10')](_0xcb7a('0x12'),_0x4bd434,JSON['stringify'](_0x4faad2));_0x439796[_0xcb7a('0x14')]();});}})['catch'](function(_0x2a8cb2){logger[_0xcb7a('0x10')]('[%s][DIALOGFLOWV2]\x20%s',_0x4bd434,_0x2a8cb2[_0xcb7a('0x2c')]);_0x439796[_0xcb7a('0x14')]();});}}catch(_0x3f5dbd){logger[_0xcb7a('0x10')](_0xcb7a('0x12'),_0x4bd434,JSON[_0xcb7a('0x26')](_0x3f5dbd));_0x439796[_0xcb7a('0x27')]();}};};