20b7d86e663828d75658e93a0888e64468fd5a4b
[motion2.git] / server / services / routing / server / applications / dialogflow.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 _0xe928=['info','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','whatsapp','phone','ChatWebsiteId','upperFirst','AccountId','created','isEmpty','body','getMustacheRender','Message','then','error','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','dialogflow','result','speech','providerName','providerResponse','stringify','metadata','catch','message','lodash','moment','apiai-promise','./utils','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','consequence','interaction'];(function(_0x4bc112,_0x812afe){var _0x43a4cc=function(_0x31787f){while(--_0x31787f){_0x4bc112['push'](_0x4bc112['shift']());}};_0x43a4cc(++_0x812afe);}(_0xe928,0x145));var _0x8e92=function(_0x17f515,_0x26e47f){_0x17f515=_0x17f515-0x0;var _0x5ea54b=_0xe928[_0x17f515];return _0x5ea54b;};'use strict';var _=require(_0x8e92('0x0'));var moment=require(_0x8e92('0x1'));var apiai=require(_0x8e92('0x2'));var md5=require('md5');var utils=require(_0x8e92('0x3'));var logger=require('../../../../config/logger')(_0x8e92('0x4'));var rpc={'chatMessage':require(_0x8e92('0x5')),'openchannelMessage':require(_0x8e92('0x6')),'mailMessage':require(_0x8e92('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x8e92('0x8')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x8e92('0x9')]=function(_0xe4eff3,_0x14811b){return function(_0x76e11){try{if(!_['isNil'](this[_0x8e92('0xa')]['UserId'])){logger[_0x8e92('0xb')](_0x8e92('0xc'),_0xe4eff3,_0x8e92('0xd'));return _0x76e11[_0x8e92('0xe')]();}var _0x45c1a4={'ContactId':this[_0x8e92('0xf')]['id'],'sentAt':moment()['format'](_0x8e92('0x10')),'direction':_0x8e92('0x11')};if(this[_0x8e92('0x12')]==='sms'||this[_0x8e92('0x12')]===_0x8e92('0x13')){_0x45c1a4[_0x8e92('0x14')]=this[_0x8e92('0xa')][_0x8e92('0x14')];}var _0x2fe37b=this[_0x8e92('0x12')];if(_0x2fe37b==='chat'){_0x45c1a4[_0x8e92('0x15')]=this['account']['id'];}else{_0x45c1a4[_[_0x8e92('0x16')](_0x2fe37b)+_0x8e92('0x17')]=this['account']['id'];}_0x45c1a4[_[_0x8e92('0x16')](_0x2fe37b)+'InteractionId']=this[_0x8e92('0xa')]['id'];if(this[_0x8e92('0xa')][_0x8e92('0x18')]){var _0x1380ef=_0x14811b[0x2];if(!_[_0x8e92('0x19')](_0x1380ef)){_0x45c1a4[_0x8e92('0x1a')]=utils[_0x8e92('0x1b')](_0x1380ef,this);return rpc[_0x2fe37b+_0x8e92('0x1c')]['create'](_0x45c1a4)[_0x8e92('0x1d')](function(_0x192b0b){logger[_0x8e92('0xb')](_0x8e92('0xc'),_0xe4eff3,_0x45c1a4[_0x8e92('0x1a')]);})['catch'](function(_0x261b07){logger[_0x8e92('0x1e')]('[%s][DIALOGFLOW]\x20%s',_0xe4eff3,JSON['stringify'](_0x261b07));})['finally'](function(){logger[_0x8e92('0xb')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0xe4eff3);_0x76e11[_0x8e92('0x1f')]();});}else{logger[_0x8e92('0xb')](_0x8e92('0x20'),_0xe4eff3);_0x76e11[_0x8e92('0x1f')]();}}else{var _0x368253=this;var _0x70f846=apiai(_0x14811b[0x0],{'language':_0x14811b[0x1]||'en'});return _0x70f846['textRequest'](this['message']['body'],{'sessionId':md5(this['interaction']['id'])})[_0x8e92('0x1d')](function(_0x3a86e4){_0x368253[_0x8e92('0x1a')][_0x8e92('0x21')]=_0x3a86e4;_0x45c1a4[_0x8e92('0x1a')]=_0x3a86e4[_0x8e92('0x22')]['fulfillment'][_0x8e92('0x23')];_0x45c1a4[_0x8e92('0x24')]=_0x8e92('0x21');_0x45c1a4[_0x8e92('0x25')]=JSON[_0x8e92('0x26')](_0x3a86e4);return rpc[_0x2fe37b+_0x8e92('0x1c')]['create'](_0x45c1a4)['then'](function(_0x510349){logger[_0x8e92('0xb')]('[%s][DIALOGFLOW]\x20%s',_0xe4eff3,_0x45c1a4[_0x8e92('0x1a')]);if(_0x3a86e4['result'][_0x8e92('0x27')]['endConversation']){_0x76e11[_0x8e92('0xe')]();}else{_0x76e11[_0x8e92('0x1f')]();}})[_0x8e92('0x28')](function(_0x3c8897){logger[_0x8e92('0x1e')](_0x8e92('0xc'),_0xe4eff3,JSON['stringify'](_0x3c8897));_0x76e11[_0x8e92('0xe')]();});})[_0x8e92('0x28')](function(_0x4c11ef){logger[_0x8e92('0x1e')]('[%s][DIALOGFLOW]\x20%s',_0xe4eff3,_0x4c11ef[_0x8e92('0x29')]);_0x76e11[_0x8e92('0xe')]();});}}catch(_0x4fb57b){logger[_0x8e92('0x1e')](_0x8e92('0xc'),_0xe4eff3,JSON[_0x8e92('0x26')](_0x4fb57b));_0x76e11[_0x8e92('0x1f')]();}};};