04874249cc896a5780d354432db5417ceb4e7852
[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 _0x8111=['dialogflow','result','fulfillment','speech','providerName','providerResponse','metadata','endConversation','next','error','message','lodash','moment','apiai-promise','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','consequence','isNil','interaction','UserId','info','[%s][DIALOGFLOW]\x20%s','contact','format','YYYY-MM-DD\x20HH:mm:ss','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','then','catch','finally','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest'];(function(_0x4044fb,_0x3da156){var _0x44df96=function(_0x240f09){while(--_0x240f09){_0x4044fb['push'](_0x4044fb['shift']());}};_0x44df96(++_0x3da156);}(_0x8111,0x143));var _0x1811=function(_0x43af76,_0x71a378){_0x43af76=_0x43af76-0x0;var _0x182ee9=_0x8111[_0x43af76];return _0x182ee9;};'use strict';var _=require(_0x1811('0x0'));var moment=require(_0x1811('0x1'));var apiai=require(_0x1811('0x2'));var md5=require(_0x1811('0x3'));var utils=require(_0x1811('0x4'));var logger=require(_0x1811('0x5'))(_0x1811('0x6'));var rpc={'chatMessage':require(_0x1811('0x7')),'openchannelMessage':require(_0x1811('0x8')),'mailMessage':require(_0x1811('0x9')),'smsMessage':require(_0x1811('0xa')),'faxMessage':require(_0x1811('0xb')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x1811('0xc')]=function(_0x227ad0,_0x4fe0d4){return function(_0x278b5a){try{if(!_[_0x1811('0xd')](this[_0x1811('0xe')][_0x1811('0xf')])){logger[_0x1811('0x10')](_0x1811('0x11'),_0x227ad0,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x278b5a['next']();}var _0x41c35b={'ContactId':this[_0x1811('0x12')]['id'],'sentAt':moment()[_0x1811('0x13')](_0x1811('0x14')),'direction':'out'};if(this['channel']==='sms'||this['channel']===_0x1811('0x15')){_0x41c35b[_0x1811('0x16')]=this['interaction'][_0x1811('0x16')];}var _0x50ef0d=this['channel'];if(_0x50ef0d===_0x1811('0x17')){_0x41c35b[_0x1811('0x18')]=this[_0x1811('0x19')]['id'];}else{_0x41c35b[_[_0x1811('0x1a')](_0x50ef0d)+_0x1811('0x1b')]=this[_0x1811('0x19')]['id'];}_0x41c35b[_[_0x1811('0x1a')](_0x50ef0d)+_0x1811('0x1c')]=this[_0x1811('0xe')]['id'];if(this[_0x1811('0xe')][_0x1811('0x1d')]){var _0x492550=_0x4fe0d4[0x2];if(!_[_0x1811('0x1e')](_0x492550)){_0x41c35b[_0x1811('0x1f')]=utils[_0x1811('0x20')](_0x492550,this);return rpc[_0x50ef0d+_0x1811('0x21')][_0x1811('0x22')](_0x41c35b)[_0x1811('0x23')](function(_0x305097){logger[_0x1811('0x10')](_0x1811('0x11'),_0x227ad0,_0x41c35b[_0x1811('0x1f')]);})[_0x1811('0x24')](function(_0x182aab){logger['error']('[%s][DIALOGFLOW]\x20%s',_0x227ad0,JSON['stringify'](_0x182aab));})[_0x1811('0x25')](function(){logger[_0x1811('0x10')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x227ad0);_0x278b5a[_0x1811('0x26')]();});}else{logger['info'](_0x1811('0x27'),_0x227ad0);_0x278b5a[_0x1811('0x26')]();}}else{var _0x330980=this;var _0x3be431=apiai(_0x4fe0d4[0x0],{'language':_0x4fe0d4[0x1]||'en'});return _0x3be431[_0x1811('0x28')](this['message'][_0x1811('0x1f')],{'sessionId':md5(this[_0x1811('0xe')]['id'])})[_0x1811('0x23')](function(_0x44f20e){_0x330980[_0x1811('0x1f')][_0x1811('0x29')]=_0x44f20e;_0x41c35b[_0x1811('0x1f')]=_0x44f20e[_0x1811('0x2a')][_0x1811('0x2b')][_0x1811('0x2c')];_0x41c35b[_0x1811('0x2d')]=_0x1811('0x29');_0x41c35b[_0x1811('0x2e')]=JSON['stringify'](_0x44f20e);return rpc[_0x50ef0d+_0x1811('0x21')][_0x1811('0x22')](_0x41c35b)['then'](function(_0x3155ac){logger['info'](_0x1811('0x11'),_0x227ad0,_0x41c35b[_0x1811('0x1f')]);if(_0x44f20e[_0x1811('0x2a')][_0x1811('0x2f')][_0x1811('0x30')]){_0x278b5a[_0x1811('0x31')]();}else{_0x278b5a[_0x1811('0x26')]();}})['catch'](function(_0x2b32a9){logger[_0x1811('0x32')]('[%s][DIALOGFLOW]\x20%s',_0x227ad0,JSON['stringify'](_0x2b32a9));_0x278b5a[_0x1811('0x31')]();});})[_0x1811('0x24')](function(_0x424cb5){logger[_0x1811('0x32')](_0x1811('0x11'),_0x227ad0,_0x424cb5[_0x1811('0x33')]);_0x278b5a[_0x1811('0x31')]();});}}catch(_0x9cec9e){logger[_0x1811('0x32')]('[%s][DIALOGFLOW]\x20%s',_0x227ad0,JSON['stringify'](_0x9cec9e));_0x278b5a[_0x1811('0x26')]();}};};