6cb4e206a36a75842abad786195976bd76c06c2d
[motion2.git] / server / services / routing / server / applications / autoreply.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 _0xee12=['subject','startsWith','Re:','Re:\x20','account','upperFirst','inReplyTo','messageId','html','<div','</div>','headers','auto-replied','All','auto_reply','sendMailMessage','smtpOptions','Message','stringify','error','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','then','Interaction','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','create','catch','lodash','moment','../../../../config/logger','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','channel','mail','isAutoreply','info','[%s][AUTOREPLY]\x20%s','isNil','interaction','created','Autoreply\x20already\x20sent','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','next','format','out','body','getMustacheRender','message','phone','read'];(function(_0x9dc3a8,_0x2e9396){var _0x2a37aa=function(_0x3d51ba){while(--_0x3d51ba){_0x9dc3a8['push'](_0x9dc3a8['shift']());}};_0x2a37aa(++_0x2e9396);}(_0xee12,0x19d));var _0x2ee1=function(_0x2d68dd,_0x119462){_0x2d68dd=_0x2d68dd-0x0;var _0x5673ed=_0xee12[_0x2d68dd];return _0x5673ed;};'use strict';var _=require(_0x2ee1('0x0'));var moment=require(_0x2ee1('0x1'));var utils=require('./utils');var logger=require(_0x2ee1('0x2'))(_0x2ee1('0x3'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x2ee1('0x4')),'mailMessage':require(_0x2ee1('0x5')),'smsMessage':require(_0x2ee1('0x6')),'faxMessage':require(_0x2ee1('0x7')),'whatsappMessage':require(_0x2ee1('0x8')),'chatInteraction':require(_0x2ee1('0x9')),'openchannelInteraction':require(_0x2ee1('0xa')),'mailInteraction':require(_0x2ee1('0xb')),'smsInteraction':require(_0x2ee1('0xc')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0x2ee1('0xd'))};var mailRpc=require(_0x2ee1('0xe'));exports[_0x2ee1('0xf')]=function(_0x1b8ecf,_0x189204,_0xd280a6,_0x304d6d){return function(_0x21e813){try{var _0x4a594d=this[_0x2ee1('0x10')];if(_0x4a594d===_0x2ee1('0x11')&&_0x304d6d['body'][_0x2ee1('0x12')]){logger[_0x2ee1('0x13')](_0x2ee1('0x14'),_0x1b8ecf,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x21e813['next']();}if(_0x189204[0x0]==='1'&&(_[_0x2ee1('0x15')](this[_0x2ee1('0x16')]['created'])||!this[_0x2ee1('0x16')][_0x2ee1('0x17')])){logger[_0x2ee1('0x13')](_0x2ee1('0x14'),_0x1b8ecf,_0x2ee1('0x18'));return _0x21e813['next']();}if(_0x189204[0x0]==='2'&&this[_0x2ee1('0x16')][_0x2ee1('0x19')]){logger[_0x2ee1('0x13')](_0x2ee1('0x1a'),_0x1b8ecf,'One\x20Time\x20already\x20sent');return _0x21e813[_0x2ee1('0x1b')]();}var _0x4fa643={'ContactId':this['contact']['id'],'sentAt':moment()[_0x2ee1('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x2ee1('0x1d')};if(this[_0x2ee1('0x10')]===_0x2ee1('0x11')){_0x4fa643[_0x2ee1('0x1e')]=utils[_0x2ee1('0x1f')](_0x189204[0x2],this);}else{_0x4fa643[_0x2ee1('0x1e')]=utils[_0x2ee1('0x1f')](_0x189204[0x1],this);}if(this[_0x2ee1('0x20')]){_0x4fa643['to']=this[_0x2ee1('0x20')]['from']||'';if(this[_0x2ee1('0x10')]===_0x2ee1('0x11')&&_0x189204[0x1]==='1'){_0x4fa643['cc']=this[_0x2ee1('0x20')]['cc']||'';}_0x4fa643['from']=this['message']['to']||'';_0x4fa643['phone']=this[_0x2ee1('0x20')][_0x2ee1('0x21')]||'';_0x4fa643[_0x2ee1('0x22')]=!![];if(this['message'][_0x2ee1('0x23')]){_0x4fa643[_0x2ee1('0x23')]='';_0x4fa643[_0x2ee1('0x23')]+=_[_0x2ee1('0x24')](this['message'][_0x2ee1('0x23')],_0x2ee1('0x25'))?'':_0x2ee1('0x26');_0x4fa643[_0x2ee1('0x23')]+=this[_0x2ee1('0x20')]['subject'];}}if(this[_0x2ee1('0x10')]==='chat'){_0x4fa643['ChatWebsiteId']=this[_0x2ee1('0x27')]['id'];}else{_0x4fa643[_[_0x2ee1('0x28')](this[_0x2ee1('0x10')])+'AccountId']=this[_0x2ee1('0x27')]['id'];}_0x4fa643[_[_0x2ee1('0x28')](this['channel'])+'InteractionId']=this[_0x2ee1('0x16')]['id'];var _0x228eeb=this['interaction'];if(rpc[this[_0x2ee1('0x10')]+'Message']){if(this[_0x2ee1('0x10')]===_0x2ee1('0x11')){_0x4fa643[_0x2ee1('0x29')]=this[_0x2ee1('0x20')][_0x2ee1('0x2a')];_0x4fa643[_0x2ee1('0x2b')]='<div\x20id=\x22xm-mail-content\x22>'+_['replace'](_0x4fa643[_0x2ee1('0x1e')],'<div\x20id=\x22xm-mail-content\x22',_0x2ee1('0x2c'))+_0x2ee1('0x2d');_0x4fa643[_0x2ee1('0x2e')]={'Auto-Submitted':_0x2ee1('0x2f'),'X-Auto-Response-Suppress':_0x2ee1('0x30'),'Precedence':_0x2ee1('0x31')};return mailRpc[_0x2ee1('0x32')](this['account'][_0x2ee1('0x33')],_0x4fa643)['then'](function(_0x266d05){logger[_0x2ee1('0x13')]('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x1b8ecf);_0x4fa643[_0x2ee1('0x2a')]=_0x266d05[_0x2ee1('0x20')][_0x2ee1('0x2a')];return rpc[_0x4a594d+_0x2ee1('0x34')]['create'](_0x4fa643);})['then'](function(_0x532a21){logger[_0x2ee1('0x13')]('[%s][AUTOREPLY]\x20%s',_0x1b8ecf,JSON[_0x2ee1('0x35')](_0x532a21));})['catch'](function(_0x1c5a1d){logger[_0x2ee1('0x36')](_0x2ee1('0x37'),_0x1b8ecf,JSON[_0x2ee1('0x35')](_0x1c5a1d));})[_0x2ee1('0x38')](function(){Promise[_0x2ee1('0x39')]()[_0x2ee1('0x3a')](function(){if(_0x189204[0x0]!=='2'||_0x228eeb[_0x2ee1('0x19')])return;return rpc[_0x4a594d+_0x2ee1('0x3b')][_0x2ee1('0x3c')](_0x228eeb['id'],{'autoreplyExecuted':!![]})[_0x2ee1('0x3a')](function(_0x453aae){logger['info'](_0x2ee1('0x1a'),_0x1b8ecf,JSON['stringify'](_0x453aae));})['catch'](function(_0x5730df){logger[_0x2ee1('0x36')](_0x2ee1('0x3d'),_0x1b8ecf,JSON[_0x2ee1('0x35')](_0x5730df));});})[_0x2ee1('0x3a')](function(){_0x21e813[_0x2ee1('0x1b')]();});});}else{return rpc[this[_0x2ee1('0x10')]+'Message'][_0x2ee1('0x3e')](_0x4fa643)[_0x2ee1('0x3a')](function(){logger['info'](_0x2ee1('0x14'),_0x1b8ecf,_0x4fa643[_0x2ee1('0x1e')]);})[_0x2ee1('0x3f')](function(_0x321a3a){logger[_0x2ee1('0x36')](_0x2ee1('0x14'),_0x1b8ecf,JSON['stringify'](_0x321a3a));})['finally'](function(){Promise['resolve']()[_0x2ee1('0x3a')](function(){if(_0x189204[0x0]!=='2'||_0x228eeb['autoreplyExecuted'])return;return rpc[_0x4a594d+'Interaction'][_0x2ee1('0x3c')](_0x228eeb['id'],{'autoreplyExecuted':!![]})[_0x2ee1('0x3a')](function(_0x33dbd9){logger['info'](_0x2ee1('0x1a'),_0x1b8ecf,JSON[_0x2ee1('0x35')](_0x33dbd9));})[_0x2ee1('0x3f')](function(_0x2050b0){logger[_0x2ee1('0x36')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x1b8ecf,JSON[_0x2ee1('0x35')](_0x2050b0));});})[_0x2ee1('0x3a')](function(){_0x21e813[_0x2ee1('0x1b')]();});});}}}catch(_0x4e19f3){logger[_0x2ee1('0x36')](_0x2ee1('0x14'),_0x1b8ecf,JSON['stringify'](_0x4e19f3));_0x21e813['stop']();}};};