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 _0xeed7=['allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','fulfillmentText','push','all','md5','moment','../../../../config/logger','routing','./utils','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','body','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','YYYY-MM-DD\x20HH:mm:ss','channel','whatsapp','phone','interaction','chat','ChatWebsiteId','account','upperFirst','AccountId','created','isEmpty','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action'];(function(_0x190148,_0xda6bdd){var _0x5009de=function(_0x19c769){while(--_0x19c769){_0x190148['push'](_0x190148['shift']());}};_0x5009de(++_0xda6bdd);}(_0xeed7,0xdf));var _0x7eed=function(_0x5541b5,_0xfa0023){_0x5541b5=_0x5541b5-0x0;var _0x763958=_0xeed7[_0x5541b5];return _0x763958;};'use strict';var _=require('lodash');var dialogflow=require('dialogflow');var md5=require(_0x7eed('0x0'));var moment=require(_0x7eed('0x1'));var Promise=require('bluebird');var logger=require(_0x7eed('0x2'))(_0x7eed('0x3'));var utils=require(_0x7eed('0x4'));var rpc={'chatMessage':require(_0x7eed('0x5')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x7eed('0x6')),'smsMessage':require(_0x7eed('0x7')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x7eed('0x8'))};function createMessage(_0x50ab76,_0x3438fa,_0x518cea,_0x5847fd){return new Promise(function(_0x37c0af,_0x1fec59){var _0x46ee90=_['clone'](_0x518cea);_0x46ee90[_0x7eed('0x9')]=_0x5847fd;return rpc[_0x3438fa+'Message']['create'](_0x46ee90)[_0x7eed('0xa')](function(){logger[_0x7eed('0xb')](_0x7eed('0xc'),_0x50ab76,_0x46ee90[_0x7eed('0x9')]);_0x37c0af();})[_0x7eed('0xd')](function(_0x2d47dc){logger[_0x7eed('0xe')](_0x7eed('0xc'),_0x50ab76,JSON[_0x7eed('0xf')](_0x2d47dc));_0x1fec59(_0x2d47dc);});});}exports['consequence']=function(_0x7f5aa4,_0x682b77){return function(_0x54ae73){try{if(!_['isNil'](this['interaction'][_0x7eed('0x10')])){logger[_0x7eed('0xb')](_0x7eed('0xc'),_0x7f5aa4,_0x7eed('0x11'));return _0x54ae73[_0x7eed('0x12')]();}var _0x55426b={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x7eed('0x13')),'direction':'out'};if(this['channel']==='sms'||this[_0x7eed('0x14')]===_0x7eed('0x15')){_0x55426b[_0x7eed('0x16')]=this[_0x7eed('0x17')][_0x7eed('0x16')];}var _0x13df98=this[_0x7eed('0x14')];if(_0x13df98===_0x7eed('0x18')){_0x55426b[_0x7eed('0x19')]=this[_0x7eed('0x1a')]['id'];}else{_0x55426b[_[_0x7eed('0x1b')](_0x13df98)+_0x7eed('0x1c')]=this[_0x7eed('0x1a')]['id'];}_0x55426b[_[_0x7eed('0x1b')](_0x13df98)+'InteractionId']=this[_0x7eed('0x17')]['id'];if(this['interaction'][_0x7eed('0x1d')]){var _0x50f58c=_0x682b77[0x4];if(!_[_0x7eed('0x1e')](_0x50f58c)){_0x55426b[_0x7eed('0x9')]=utils['getMustacheRender'](_0x50f58c,this);return rpc[_0x13df98+'Message']['create'](_0x55426b)[_0x7eed('0xa')](function(_0x451e71){logger[_0x7eed('0xb')](_0x7eed('0xc'),_0x7f5aa4,_0x55426b[_0x7eed('0x9')]);})[_0x7eed('0xd')](function(_0x329e5f){logger[_0x7eed('0xe')](_0x7eed('0xc'),_0x7f5aa4,JSON[_0x7eed('0xf')](_0x329e5f));})[_0x7eed('0x1f')](function(){logger[_0x7eed('0xb')](_0x7eed('0x20'),_0x7f5aa4);_0x54ae73[_0x7eed('0x21')]();});}else{logger[_0x7eed('0xb')](_0x7eed('0x22'),_0x7f5aa4);_0x54ae73[_0x7eed('0x21')]();}}else{var _0x34c4ac=this;var _0x1ee2e5=_0x682b77[0x2][_0x7eed('0x23')](/\\n/g,'\x0a');var _0x4482e6={'credentials':{'private_key':_0x1ee2e5,'client_email':_0x682b77[0x1]}};var _0x356828=new dialogflow[(_0x7eed('0x24'))](_0x4482e6);var _0x764ea3=_0x356828[_0x7eed('0x25')](_0x682b77[0x0],md5(_0x34c4ac[_0x7eed('0x17')]['id']));var _0x4016ca={'session':_0x764ea3,'queryInput':{'text':{'text':_0x34c4ac[_0x7eed('0x26')][_0x7eed('0x9')],'languageCode':_0x682b77[0x3]||'en'}}};return _0x356828[_0x7eed('0x27')](_0x4016ca)[_0x7eed('0xa')](function(_0x3d6e09){if(_0x3d6e09&&_0x3d6e09[_0x7eed('0x28')]){_0x34c4ac[_0x7eed('0x9')][_0x7eed('0x29')]=_0x3d6e09;var _0x3fa0b8=_0x3d6e09[0x0];var _0x55fae2=_0x3fa0b8[_0x7eed('0x2a')][_0x7eed('0x2b')]&&_0x3fa0b8[_0x7eed('0x2a')][_0x7eed('0x2b')][_0x7eed('0x2c')]?_0x3fa0b8['queryResult']['diagnosticInfo']['fields'][_0x7eed('0x2d')][_0x7eed('0x2e')]:![];_0x34c4ac[_0x7eed('0x9')][_0x7eed('0x2f')]=_0x3fa0b8['queryResult'][_0x7eed('0x30')];_0x34c4ac[_0x7eed('0x9')]['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x3fa0b8['queryResult'][_0x7eed('0x31')];_0x34c4ac[_0x7eed('0x9')][_0x7eed('0x32')]=_0x3fa0b8['queryResult'][_0x7eed('0x2b')]&&_0x3fa0b8['queryResult'][_0x7eed('0x2b')][_0x7eed('0x2c')]?_0x3fa0b8[_0x7eed('0x2a')][_0x7eed('0x2b')][_0x7eed('0x2c')][_0x7eed('0x2d')][_0x7eed('0x2e')]:![];_0x34c4ac[_0x7eed('0x9')]['DIALOGFLOWV2_INTENTNAME']=_0x3fa0b8[_0x7eed('0x2a')][_0x7eed('0x33')][_0x7eed('0x34')];_0x34c4ac[_0x7eed('0x9')][_0x7eed('0x35')]=_0x3fa0b8[_0x7eed('0x2a')][_0x7eed('0x33')][_0x7eed('0x36')];_0x34c4ac[_0x7eed('0x9')][_0x7eed('0x37')]=_0x3fa0b8[_0x7eed('0x2a')]['intent'][_0x7eed('0x38')];_0x34c4ac[_0x7eed('0x9')][_0x7eed('0x39')]=_0x3fa0b8['queryResult'][_0x7eed('0x3a')];_0x34c4ac['body'][_0x7eed('0x3b')]=_0x3fa0b8[_0x7eed('0x2a')][_0x7eed('0x3c')];_0x34c4ac[_0x7eed('0x9')][_0x7eed('0x3d')]=_0x3fa0b8[_0x7eed('0x2a')][_0x7eed('0x3e')];_0x55426b[_0x7eed('0x3f')]=_0x7eed('0x29');_0x55426b[_0x7eed('0x40')]=JSON[_0x7eed('0xf')](_0x3d6e09);var _0x5e8c17=[];for(var _0x1ca060=0x0;_0x1ca060<_0x3d6e09[_0x7eed('0x28')];_0x1ca060++){var _0x51658f=_0x3d6e09[_0x1ca060];if(_0x51658f&&_0x51658f[_0x7eed('0x2a')]&&_0x51658f[_0x7eed('0x2a')][_0x7eed('0x41')]){_0x5e8c17[_0x7eed('0x42')](createMessage(_0x7f5aa4,_0x13df98,_0x55426b,_0x51658f[_0x7eed('0x2a')][_0x7eed('0x41')]));}}return Promise[_0x7eed('0x43')](_0x5e8c17)[_0x7eed('0xa')](function(){if(_0x55fae2){_0x54ae73[_0x7eed('0x12')]();}else{_0x54ae73[_0x7eed('0x21')]();}})['catch'](function(_0x2cfc7f){logger[_0x7eed('0xe')](_0x7eed('0xc'),_0x7f5aa4,JSON[_0x7eed('0xf')](_0x2cfc7f));_0x54ae73[_0x7eed('0x12')]();});}})[_0x7eed('0xd')](function(_0x3e2cb2){logger[_0x7eed('0xe')](_0x7eed('0xc'),_0x7f5aa4,_0x3e2cb2[_0x7eed('0x26')]);_0x54ae73[_0x7eed('0x12')]();});}}catch(_0x21a4f4){logger[_0x7eed('0xe')](_0x7eed('0xc'),_0x7f5aa4,JSON[_0x7eed('0xf')](_0x21a4f4));_0x54ae73['stop']();}};};