Built motion from commit da617fac.|2.6.6
[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 _0xe008=['stop','lodash','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/whatsappInteraction','consequence','mail','body','isAutoreply','[%s][AUTOREPLY]\x20%s','isNil','interaction','created','info','Autoreply\x20already\x20sent','next','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','format','YYYY-MM-DD\x20HH:mm:ss','out','message','from','phone','read','subject','startsWith','Re:\x20','channel','chat','ChatWebsiteId','account','upperFirst','InteractionId','Message','inReplyTo','messageId','html','replace','<div','</div>','headers','auto_reply','smtpOptions','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','resolve','Interaction'];(function(_0xad57ee,_0x2823a6){var _0x3eaea9=function(_0x185650){while(--_0x185650){_0xad57ee['push'](_0xad57ee['shift']());}};_0x3eaea9(++_0x2823a6);}(_0xe008,0xfd));var _0x8e00=function(_0x41ef1d,_0x43844c){_0x41ef1d=_0x41ef1d-0x0;var _0x53c577=_0xe008[_0x41ef1d];return _0x53c577;};'use strict';var _=require(_0x8e00('0x0'));var moment=require('moment');var utils=require('./utils');var logger=require('../../../../config/logger')(_0x8e00('0x1'));var rpc={'chatMessage':require(_0x8e00('0x2')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x8e00('0x3')),'smsMessage':require(_0x8e00('0x4')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x8e00('0x5')),'chatInteraction':require(_0x8e00('0x6')),'openchannelInteraction':require(_0x8e00('0x7')),'mailInteraction':require(_0x8e00('0x8')),'smsInteraction':require(_0x8e00('0x9')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0x8e00('0xa'))};var mailRpc=require('../../mailRpc');exports[_0x8e00('0xb')]=function(_0x496a97,_0x1659e6,_0x41b68a,_0x26b25a){return function(_0x1c7681){try{var _0x3cfdf6=this['channel'];if(_0x3cfdf6===_0x8e00('0xc')&&_0x26b25a[_0x8e00('0xd')][_0x8e00('0xe')]){logger['info'](_0x8e00('0xf'),_0x496a97,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x1c7681['next']();}if(_0x1659e6[0x0]==='1'&&(_[_0x8e00('0x10')](this[_0x8e00('0x11')]['created'])||!this[_0x8e00('0x11')][_0x8e00('0x12')])){logger[_0x8e00('0x13')]('[%s][AUTOREPLY]\x20%s',_0x496a97,_0x8e00('0x14'));return _0x1c7681[_0x8e00('0x15')]();}if(_0x1659e6[0x0]==='2'&&this[_0x8e00('0x11')][_0x8e00('0x16')]){logger[_0x8e00('0x13')](_0x8e00('0x17'),_0x496a97,_0x8e00('0x18'));return _0x1c7681[_0x8e00('0x15')]();}var _0x2875a0={'ContactId':this['contact']['id'],'sentAt':moment()[_0x8e00('0x19')](_0x8e00('0x1a')),'direction':_0x8e00('0x1b')};if(this['channel']==='mail'){_0x2875a0[_0x8e00('0xd')]=utils['getMustacheRender'](_0x1659e6[0x2],this);}else{_0x2875a0['body']=utils['getMustacheRender'](_0x1659e6[0x1],this);}if(this[_0x8e00('0x1c')]){_0x2875a0['to']=this['message'][_0x8e00('0x1d')]||'';if(this['channel']===_0x8e00('0xc')&&_0x1659e6[0x1]==='1'){_0x2875a0['cc']=this[_0x8e00('0x1c')]['cc']||'';}_0x2875a0[_0x8e00('0x1d')]=this[_0x8e00('0x1c')]['to']||'';_0x2875a0['phone']=this[_0x8e00('0x1c')][_0x8e00('0x1e')]||'';_0x2875a0[_0x8e00('0x1f')]=!![];if(this['message'][_0x8e00('0x20')]){_0x2875a0[_0x8e00('0x20')]='';_0x2875a0[_0x8e00('0x20')]+=_[_0x8e00('0x21')](this[_0x8e00('0x1c')][_0x8e00('0x20')],'Re:')?'':_0x8e00('0x22');_0x2875a0['subject']+=this[_0x8e00('0x1c')][_0x8e00('0x20')];}}if(this[_0x8e00('0x23')]===_0x8e00('0x24')){_0x2875a0[_0x8e00('0x25')]=this[_0x8e00('0x26')]['id'];}else{_0x2875a0[_[_0x8e00('0x27')](this['channel'])+'AccountId']=this[_0x8e00('0x26')]['id'];}_0x2875a0[_[_0x8e00('0x27')](this[_0x8e00('0x23')])+_0x8e00('0x28')]=this[_0x8e00('0x11')]['id'];var _0x14a031=this['interaction'];if(rpc[this[_0x8e00('0x23')]+_0x8e00('0x29')]){if(this['channel']===_0x8e00('0xc')){_0x2875a0[_0x8e00('0x2a')]=this[_0x8e00('0x1c')][_0x8e00('0x2b')];_0x2875a0[_0x8e00('0x2c')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0x8e00('0x2d')](_0x2875a0[_0x8e00('0xd')],'<div\x20id=\x22xm-mail-content\x22',_0x8e00('0x2e'))+_0x8e00('0x2f');_0x2875a0[_0x8e00('0x30')]={'Auto-Submitted':'auto-replied','X-Auto-Response-Suppress':'All','Precedence':_0x8e00('0x31')};return mailRpc['sendMailMessage'](this[_0x8e00('0x26')][_0x8e00('0x32')],_0x2875a0)[_0x8e00('0x33')](function(_0x33499b){logger['info'](_0x8e00('0x34'),_0x496a97);_0x2875a0[_0x8e00('0x2b')]=_0x33499b['message']['messageId'];return rpc[_0x3cfdf6+_0x8e00('0x29')][_0x8e00('0x35')](_0x2875a0);})[_0x8e00('0x33')](function(_0x217791){logger[_0x8e00('0x13')]('[%s][AUTOREPLY]\x20%s',_0x496a97,JSON[_0x8e00('0x36')](_0x217791));})[_0x8e00('0x37')](function(_0x4c1cd5){logger[_0x8e00('0x38')](_0x8e00('0x39'),_0x496a97,JSON[_0x8e00('0x36')](_0x4c1cd5));})['finally'](function(){Promise['resolve']()[_0x8e00('0x33')](function(){if(_0x1659e6[0x0]!=='2'||_0x14a031['autoreplyExecuted'])return;return rpc[_0x3cfdf6+'Interaction'][_0x8e00('0x3a')](_0x14a031['id'],{'autoreplyExecuted':!![]})['then'](function(_0x57a237){logger[_0x8e00('0x13')](_0x8e00('0x17'),_0x496a97,JSON[_0x8e00('0x36')](_0x57a237));})[_0x8e00('0x37')](function(_0x10a9d0){logger[_0x8e00('0x38')](_0x8e00('0x3b'),_0x496a97,JSON[_0x8e00('0x36')](_0x10a9d0));});})[_0x8e00('0x33')](function(){_0x1c7681['next']();});});}else{return rpc[this[_0x8e00('0x23')]+'Message'][_0x8e00('0x35')](_0x2875a0)[_0x8e00('0x33')](function(){logger[_0x8e00('0x13')]('[%s][AUTOREPLY]\x20%s',_0x496a97,_0x2875a0[_0x8e00('0xd')]);})[_0x8e00('0x37')](function(_0x4e4fce){logger[_0x8e00('0x38')]('[%s][AUTOREPLY]\x20%s',_0x496a97,JSON[_0x8e00('0x36')](_0x4e4fce));})['finally'](function(){Promise[_0x8e00('0x3c')]()[_0x8e00('0x33')](function(){if(_0x1659e6[0x0]!=='2'||_0x14a031[_0x8e00('0x16')])return;return rpc[_0x3cfdf6+_0x8e00('0x3d')]['update'](_0x14a031['id'],{'autoreplyExecuted':!![]})['then'](function(_0x5a195f){logger['info']('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x496a97,JSON[_0x8e00('0x36')](_0x5a195f));})[_0x8e00('0x37')](function(_0x446205){logger['error']('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x496a97,JSON[_0x8e00('0x36')](_0x446205));});})[_0x8e00('0x33')](function(){_0x1c7681[_0x8e00('0x15')]();});});}}}catch(_0xdcec9f){logger['error'](_0x8e00('0xf'),_0x496a97,JSON[_0x8e00('0x36')](_0xdcec9f));_0x1c7681[_0x8e00('0x3e')]();}};};