39ed894cfe671a6fa60c9e724332863ef0828b03
[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 _0x3881=['mail','body','isAutoreply','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','isNil','created','interaction','Autoreply\x20already\x20sent','autoreplyExecuted','YYYY-MM-DD\x20HH:mm:ss','getMustacheRender','message','from','phone','read','subject','startsWith','Re:','Re:\x20','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','Message','inReplyTo','messageId','html','<div\x20id=\x22xm-mail-content\x22>','replace','<div\x20id=\x22xm-mail-content\x22','<div','</div>','headers','auto-replied','auto_reply','sendMailMessage','smtpOptions','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','Interaction','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','resolve','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','lodash','moment','./utils','../../../../config/logger','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','consequence','channel'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x3881,0xc3));var _0x1388=function(_0x344bc8,_0x2fa54a){_0x344bc8=_0x344bc8-0x0;var _0x1e83a4=_0x3881[_0x344bc8];return _0x1e83a4;};'use strict';var _=require(_0x1388('0x0'));var moment=require(_0x1388('0x1'));var utils=require(_0x1388('0x2'));var logger=require(_0x1388('0x3'))('routing');var rpc={'chatMessage':require(_0x1388('0x4')),'openchannelMessage':require(_0x1388('0x5')),'mailMessage':require(_0x1388('0x6')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x1388('0x7')),'whatsappMessage':require(_0x1388('0x8')),'chatInteraction':require(_0x1388('0x9')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require(_0x1388('0xa')),'smsInteraction':require(_0x1388('0xb')),'faxInteraction':require(_0x1388('0xc')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require('../../mailRpc');exports[_0x1388('0xd')]=function(_0x1fbf36,_0x49029b,_0x32dc7d,_0x59007e){return function(_0xea5cc3){try{var _0x1eb2cb=this[_0x1388('0xe')];if(_0x1eb2cb===_0x1388('0xf')&&_0x59007e[_0x1388('0x10')][_0x1388('0x11')]){logger[_0x1388('0x12')](_0x1388('0x13'),_0x1fbf36,_0x1388('0x14'));return _0xea5cc3[_0x1388('0x15')]();}if(_0x49029b[0x0]==='1'&&(_[_0x1388('0x16')](this['interaction'][_0x1388('0x17')])||!this[_0x1388('0x18')]['created'])){logger[_0x1388('0x12')](_0x1388('0x13'),_0x1fbf36,_0x1388('0x19'));return _0xea5cc3[_0x1388('0x15')]();}if(_0x49029b[0x0]==='2'&&this[_0x1388('0x18')][_0x1388('0x1a')]){logger[_0x1388('0x12')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x1fbf36,'One\x20Time\x20already\x20sent');return _0xea5cc3[_0x1388('0x15')]();}var _0x5e9865={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x1388('0x1b')),'direction':'out'};if(this['channel']===_0x1388('0xf')){_0x5e9865[_0x1388('0x10')]=utils[_0x1388('0x1c')](_0x49029b[0x2],this);}else{_0x5e9865[_0x1388('0x10')]=utils[_0x1388('0x1c')](_0x49029b[0x1],this);}if(this[_0x1388('0x1d')]){_0x5e9865['to']=this[_0x1388('0x1d')][_0x1388('0x1e')]||'';if(this[_0x1388('0xe')]===_0x1388('0xf')&&_0x49029b[0x1]==='1'){_0x5e9865['cc']=this[_0x1388('0x1d')]['cc']||'';}_0x5e9865['from']=this[_0x1388('0x1d')]['to']||'';_0x5e9865[_0x1388('0x1f')]=this[_0x1388('0x1d')]['phone']||'';_0x5e9865[_0x1388('0x20')]=!![];if(this['message'][_0x1388('0x21')]){_0x5e9865[_0x1388('0x21')]='';_0x5e9865['subject']+=_[_0x1388('0x22')](this[_0x1388('0x1d')]['subject'],_0x1388('0x23'))?'':_0x1388('0x24');_0x5e9865[_0x1388('0x21')]+=this[_0x1388('0x1d')][_0x1388('0x21')];}}if(this[_0x1388('0xe')]==='chat'){_0x5e9865[_0x1388('0x25')]=this[_0x1388('0x26')]['id'];}else{_0x5e9865[_[_0x1388('0x27')](this['channel'])+_0x1388('0x28')]=this['account']['id'];}_0x5e9865[_[_0x1388('0x27')](this['channel'])+_0x1388('0x29')]=this['interaction']['id'];var _0x2f3b48=this[_0x1388('0x18')];if(rpc[this[_0x1388('0xe')]+_0x1388('0x2a')]){if(this['channel']===_0x1388('0xf')){_0x5e9865[_0x1388('0x2b')]=this[_0x1388('0x1d')][_0x1388('0x2c')];_0x5e9865[_0x1388('0x2d')]=_0x1388('0x2e')+_[_0x1388('0x2f')](_0x5e9865['body'],_0x1388('0x30'),_0x1388('0x31'))+_0x1388('0x32');_0x5e9865[_0x1388('0x33')]={'Auto-Submitted':_0x1388('0x34'),'X-Auto-Response-Suppress':'All','Precedence':_0x1388('0x35')};return mailRpc[_0x1388('0x36')](this['account'][_0x1388('0x37')],_0x5e9865)[_0x1388('0x38')](function(_0x5e686e){logger[_0x1388('0x12')](_0x1388('0x39'),_0x1fbf36);_0x5e9865[_0x1388('0x2c')]=_0x5e686e[_0x1388('0x1d')][_0x1388('0x2c')];return rpc[_0x1eb2cb+_0x1388('0x2a')][_0x1388('0x3a')](_0x5e9865);})['then'](function(_0x17176e){logger[_0x1388('0x12')](_0x1388('0x13'),_0x1fbf36,JSON[_0x1388('0x3b')](_0x17176e));})[_0x1388('0x3c')](function(_0xe6eda1){logger[_0x1388('0x3d')](_0x1388('0x3e'),_0x1fbf36,JSON[_0x1388('0x3b')](_0xe6eda1));})[_0x1388('0x3f')](function(){Promise['resolve']()[_0x1388('0x38')](function(){if(_0x49029b[0x0]!=='2'||_0x2f3b48['autoreplyExecuted'])return;return rpc[_0x1eb2cb+_0x1388('0x40')]['update'](_0x2f3b48['id'],{'autoreplyExecuted':!![]})[_0x1388('0x38')](function(_0x434940){logger[_0x1388('0x12')](_0x1388('0x41'),_0x1fbf36,JSON['stringify'](_0x434940));})[_0x1388('0x3c')](function(_0x5adbe2){logger['error']('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x1fbf36,JSON[_0x1388('0x3b')](_0x5adbe2));});})[_0x1388('0x38')](function(){_0xea5cc3[_0x1388('0x15')]();});});}else{return rpc[this[_0x1388('0xe')]+_0x1388('0x2a')]['create'](_0x5e9865)[_0x1388('0x38')](function(){logger[_0x1388('0x12')](_0x1388('0x13'),_0x1fbf36,_0x5e9865[_0x1388('0x10')]);})['catch'](function(_0x4cc1ed){logger[_0x1388('0x3d')]('[%s][AUTOREPLY]\x20%s',_0x1fbf36,JSON['stringify'](_0x4cc1ed));})[_0x1388('0x3f')](function(){Promise[_0x1388('0x42')]()['then'](function(){if(_0x49029b[0x0]!=='2'||_0x2f3b48['autoreplyExecuted'])return;return rpc[_0x1eb2cb+_0x1388('0x40')][_0x1388('0x43')](_0x2f3b48['id'],{'autoreplyExecuted':!![]})[_0x1388('0x38')](function(_0x3b3416){logger[_0x1388('0x12')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x1fbf36,JSON['stringify'](_0x3b3416));})[_0x1388('0x3c')](function(_0x12c822){logger[_0x1388('0x3d')](_0x1388('0x44'),_0x1fbf36,JSON[_0x1388('0x3b')](_0x12c822));});})[_0x1388('0x38')](function(){_0xea5cc3[_0x1388('0x15')]();});});}}}catch(_0xe08fc9){logger[_0x1388('0x3d')](_0x1388('0x13'),_0x1fbf36,JSON[_0x1388('0x3b')](_0xe08fc9));_0xea5cc3[_0x1388('0x45')]();}};};