e3313304b03fdd0bf23a0907c0a3a5f8884646bf
[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 _0xe01a=['lodash','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../mailRpc','consequence','mail','body','isAutoreply','info','next','isNil','interaction','created','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','YYYY-MM-DD\x20HH:mm:ss','channel','getMustacheRender','from','message','phone','read','subject','Re:','Re:\x20','chat','upperFirst','AccountId','account','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','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','Interaction','update','create','[%s][AUTOREPLY]\x20%s','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop'];(function(_0x59aeec,_0x4a973f){var _0x1868e0=function(_0x26b855){while(--_0x26b855){_0x59aeec['push'](_0x59aeec['shift']());}};_0x1868e0(++_0x4a973f);}(_0xe01a,0x118));var _0xae01=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xe01a[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0xae01('0x0'));var moment=require(_0xae01('0x1'));var utils=require(_0xae01('0x2'));var logger=require(_0xae01('0x3'))(_0xae01('0x4'));var rpc={'chatMessage':require(_0xae01('0x5')),'openchannelMessage':require(_0xae01('0x6')),'mailMessage':require(_0xae01('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xae01('0x8')),'whatsappMessage':require(_0xae01('0x9')),'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require(_0xae01('0xa')),'smsInteraction':require(_0xae01('0xb')),'faxInteraction':require(_0xae01('0xc')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require(_0xae01('0xd'));exports[_0xae01('0xe')]=function(_0x26f205,_0x19d400,_0x14e2f9,_0x3906bb){return function(_0x4b1df9){try{var _0xeea0ba=this['channel'];if(_0xeea0ba===_0xae01('0xf')&&_0x3906bb[_0xae01('0x10')][_0xae01('0x11')]){logger[_0xae01('0x12')]('[%s][AUTOREPLY]\x20%s',_0x26f205,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x4b1df9[_0xae01('0x13')]();}if(_0x19d400[0x0]==='1'&&(_[_0xae01('0x14')](this[_0xae01('0x15')][_0xae01('0x16')])||!this['interaction'][_0xae01('0x16')])){logger[_0xae01('0x12')]('[%s][AUTOREPLY]\x20%s',_0x26f205,'Autoreply\x20already\x20sent');return _0x4b1df9[_0xae01('0x13')]();}if(_0x19d400[0x0]==='2'&&this[_0xae01('0x15')][_0xae01('0x17')]){logger[_0xae01('0x12')](_0xae01('0x18'),_0x26f205,_0xae01('0x19'));return _0x4b1df9[_0xae01('0x13')]();}var _0x14c66b={'ContactId':this[_0xae01('0x1a')]['id'],'sentAt':moment()[_0xae01('0x1b')](_0xae01('0x1c')),'direction':'out'};if(this[_0xae01('0x1d')]===_0xae01('0xf')){_0x14c66b[_0xae01('0x10')]=utils[_0xae01('0x1e')](_0x19d400[0x2],this);}else{_0x14c66b['body']=utils['getMustacheRender'](_0x19d400[0x1],this);}if(this['message']){_0x14c66b['to']=this['message'][_0xae01('0x1f')]||'';if(this['channel']==='mail'&&_0x19d400[0x1]==='1'){_0x14c66b['cc']=this[_0xae01('0x20')]['cc']||'';}_0x14c66b[_0xae01('0x1f')]=this[_0xae01('0x20')]['to']||'';_0x14c66b[_0xae01('0x21')]=this[_0xae01('0x20')][_0xae01('0x21')]||'';_0x14c66b[_0xae01('0x22')]=!![];if(this[_0xae01('0x20')][_0xae01('0x23')]){_0x14c66b[_0xae01('0x23')]='';_0x14c66b['subject']+=_['startsWith'](this[_0xae01('0x20')][_0xae01('0x23')],_0xae01('0x24'))?'':_0xae01('0x25');_0x14c66b[_0xae01('0x23')]+=this[_0xae01('0x20')]['subject'];}}if(this[_0xae01('0x1d')]===_0xae01('0x26')){_0x14c66b['ChatWebsiteId']=this['account']['id'];}else{_0x14c66b[_[_0xae01('0x27')](this['channel'])+_0xae01('0x28')]=this[_0xae01('0x29')]['id'];}_0x14c66b[_[_0xae01('0x27')](this[_0xae01('0x1d')])+_0xae01('0x2a')]=this['interaction']['id'];var _0x1c43d3=this['interaction'];if(rpc[this[_0xae01('0x1d')]+_0xae01('0x2b')]){if(this['channel']===_0xae01('0xf')){_0x14c66b[_0xae01('0x2c')]=this['message'][_0xae01('0x2d')];_0x14c66b[_0xae01('0x2e')]=_0xae01('0x2f')+_[_0xae01('0x30')](_0x14c66b[_0xae01('0x10')],_0xae01('0x31'),_0xae01('0x32'))+_0xae01('0x33');_0x14c66b[_0xae01('0x34')]={'Auto-Submitted':_0xae01('0x35'),'X-Auto-Response-Suppress':'All','Precedence':_0xae01('0x36')};return mailRpc[_0xae01('0x37')](this[_0xae01('0x29')][_0xae01('0x38')],_0x14c66b)[_0xae01('0x39')](function(_0x5814c5){logger[_0xae01('0x12')]('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x26f205);_0x14c66b[_0xae01('0x2d')]=_0x5814c5[_0xae01('0x20')]['messageId'];return rpc[_0xeea0ba+_0xae01('0x2b')]['create'](_0x14c66b);})[_0xae01('0x39')](function(_0x28a309){logger[_0xae01('0x12')]('[%s][AUTOREPLY]\x20%s',_0x26f205,JSON[_0xae01('0x3a')](_0x28a309));})[_0xae01('0x3b')](function(_0xb496c6){logger[_0xae01('0x3c')](_0xae01('0x3d'),_0x26f205,JSON['stringify'](_0xb496c6));})[_0xae01('0x3e')](function(){Promise[_0xae01('0x3f')]()[_0xae01('0x39')](function(){if(_0x19d400[0x0]!=='2'||_0x1c43d3['autoreplyExecuted'])return;return rpc[_0xeea0ba+_0xae01('0x40')][_0xae01('0x41')](_0x1c43d3['id'],{'autoreplyExecuted':!![]})[_0xae01('0x39')](function(_0x52822a){logger['info'](_0xae01('0x18'),_0x26f205,JSON[_0xae01('0x3a')](_0x52822a));})[_0xae01('0x3b')](function(_0x232b00){logger[_0xae01('0x3c')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x26f205,JSON[_0xae01('0x3a')](_0x232b00));});})['then'](function(){_0x4b1df9[_0xae01('0x13')]();});});}else{return rpc[this[_0xae01('0x1d')]+_0xae01('0x2b')][_0xae01('0x42')](_0x14c66b)['then'](function(){logger[_0xae01('0x12')](_0xae01('0x43'),_0x26f205,_0x14c66b['body']);})[_0xae01('0x3b')](function(_0x3b3a0b){logger[_0xae01('0x3c')](_0xae01('0x43'),_0x26f205,JSON['stringify'](_0x3b3a0b));})['finally'](function(){Promise[_0xae01('0x3f')]()[_0xae01('0x39')](function(){if(_0x19d400[0x0]!=='2'||_0x1c43d3[_0xae01('0x17')])return;return rpc[_0xeea0ba+'Interaction'][_0xae01('0x41')](_0x1c43d3['id'],{'autoreplyExecuted':!![]})[_0xae01('0x39')](function(_0x421a41){logger[_0xae01('0x12')](_0xae01('0x18'),_0x26f205,JSON['stringify'](_0x421a41));})[_0xae01('0x3b')](function(_0x14cf89){logger[_0xae01('0x3c')](_0xae01('0x44'),_0x26f205,JSON[_0xae01('0x3a')](_0x14cf89));});})[_0xae01('0x39')](function(){_0x4b1df9[_0xae01('0x13')]();});});}}}catch(_0x497442){logger['error'](_0xae01('0x43'),_0x26f205,JSON[_0xae01('0x3a')](_0x497442));_0x4b1df9[_0xae01('0x45')]();}};};