40802b175217ec31a4cff64ce24bf89674273d37
[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 _0x3b3a=['ChatWebsiteId','account','upperFirst','AccountId','Smtp','service','host','port','secure','user','pass','inReplyTo','html','<div\x20id=\x22xm-mail-content\x22>','replace','<div\x20id=\x22xm-mail-content\x22','</div>','headers','auto-replied','All','auto_reply','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','messageId','Message','create','stringify','finally','resolve','Interaction','update','catch','error','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','lodash','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','isNil','interaction','created','info','[%s][AUTOREPLY]\x20%s','next','autoreplyExecuted','contact','YYYY-MM-DD\x20HH:mm:ss','channel','mail','body','getMustacheRender','message','from','phone','subject','startsWith','Re:','Re:\x20','chat'];(function(_0x57b38f,_0xc26f33){var _0x6aa12c=function(_0x32850d){while(--_0x32850d){_0x57b38f['push'](_0x57b38f['shift']());}};_0x6aa12c(++_0xc26f33);}(_0x3b3a,0x13b));var _0xa3b3=function(_0x4a5494,_0x3ad336){_0x4a5494=_0x4a5494-0x0;var _0x57cbb5=_0x3b3a[_0x4a5494];return _0x57cbb5;};'use strict';var _=require(_0xa3b3('0x0'));var moment=require('moment');var utils=require(_0xa3b3('0x1'));var logger=require(_0xa3b3('0x2'))(_0xa3b3('0x3'));var rpc={'chatMessage':require(_0xa3b3('0x4')),'openchannelMessage':require(_0xa3b3('0x5')),'mailMessage':require(_0xa3b3('0x6')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xa3b3('0x7')),'whatsappMessage':require(_0xa3b3('0x8')),'chatInteraction':require(_0xa3b3('0x9')),'openchannelInteraction':require(_0xa3b3('0xa')),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require('../../rpc/smsInteraction'),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0xa3b3('0xb'))};var mailRpc=require(_0xa3b3('0xc'));exports[_0xa3b3('0xd')]=function(_0xb0e80d,_0x3564ac){return function(_0x4fa1f3){try{if(_0x3564ac[0x0]==='1'&&(_[_0xa3b3('0xe')](this[_0xa3b3('0xf')]['created'])||!this[_0xa3b3('0xf')][_0xa3b3('0x10')])){logger[_0xa3b3('0x11')](_0xa3b3('0x12'),_0xb0e80d,'Autoreply\x20already\x20sent');return _0x4fa1f3[_0xa3b3('0x13')]();}if(_0x3564ac[0x0]==='2'&&this[_0xa3b3('0xf')][_0xa3b3('0x14')]){logger['info']('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0xb0e80d,'One\x20Time\x20already\x20sent');return _0x4fa1f3[_0xa3b3('0x13')]();}var _0x102e49=this['channel'];var _0x383939={'ContactId':this[_0xa3b3('0x15')]['id'],'sentAt':moment()['format'](_0xa3b3('0x16')),'direction':'out'};if(this[_0xa3b3('0x17')]===_0xa3b3('0x18')){_0x383939[_0xa3b3('0x19')]=utils[_0xa3b3('0x1a')](_0x3564ac[0x2],this);}else{_0x383939[_0xa3b3('0x19')]=utils[_0xa3b3('0x1a')](_0x3564ac[0x1],this);}if(this[_0xa3b3('0x1b')]){_0x383939['to']=this[_0xa3b3('0x1b')][_0xa3b3('0x1c')]||'';if(this[_0xa3b3('0x17')]===_0xa3b3('0x18')&&_0x3564ac[0x1]==='1'){_0x383939['cc']=this[_0xa3b3('0x1b')]['cc']||'';}_0x383939['from']=this[_0xa3b3('0x1b')]['to']||'';_0x383939['phone']=this[_0xa3b3('0x1b')][_0xa3b3('0x1d')]||'';_0x383939['read']=!![];if(this[_0xa3b3('0x1b')][_0xa3b3('0x1e')]){_0x383939[_0xa3b3('0x1e')]='';_0x383939[_0xa3b3('0x1e')]+=_[_0xa3b3('0x1f')](this[_0xa3b3('0x1b')][_0xa3b3('0x1e')],_0xa3b3('0x20'))?'':_0xa3b3('0x21');_0x383939[_0xa3b3('0x1e')]+=this[_0xa3b3('0x1b')][_0xa3b3('0x1e')];}}if(this[_0xa3b3('0x17')]===_0xa3b3('0x22')){_0x383939[_0xa3b3('0x23')]=this[_0xa3b3('0x24')]['id'];}else{_0x383939[_[_0xa3b3('0x25')](this[_0xa3b3('0x17')])+_0xa3b3('0x26')]=this[_0xa3b3('0x24')]['id'];}_0x383939[_[_0xa3b3('0x25')](this['channel'])+'InteractionId']=this[_0xa3b3('0xf')]['id'];var _0x202749=this[_0xa3b3('0xf')];if(rpc[this[_0xa3b3('0x17')]+'Message']){if(this[_0xa3b3('0x17')]===_0xa3b3('0x18')){var _0x2d1918={'tls':{'rejectUnauthorized':![]}};if(this[_0xa3b3('0x24')][_0xa3b3('0x27')]['service']){_0x2d1918[_0xa3b3('0x28')]=this[_0xa3b3('0x24')][_0xa3b3('0x27')][_0xa3b3('0x28')];}else{_0x2d1918[_0xa3b3('0x29')]=this[_0xa3b3('0x24')][_0xa3b3('0x27')]['host'];_0x2d1918['port']=this['account']['Smtp'][_0xa3b3('0x2a')];_0x2d1918[_0xa3b3('0x2b')]=this[_0xa3b3('0x24')][_0xa3b3('0x27')][_0xa3b3('0x2b')];}if(this[_0xa3b3('0x24')][_0xa3b3('0x27')]['authentication']){_0x2d1918['auth']={'user':this['account'][_0xa3b3('0x27')][_0xa3b3('0x2c')],'pass':this[_0xa3b3('0x24')][_0xa3b3('0x27')][_0xa3b3('0x2d')]};}_0x383939[_0xa3b3('0x2e')]=this[_0xa3b3('0x1b')]['messageId'];_0x383939[_0xa3b3('0x2f')]=_0xa3b3('0x30')+_[_0xa3b3('0x31')](_0x383939['body'],_0xa3b3('0x32'),'<div')+_0xa3b3('0x33');_0x383939[_0xa3b3('0x34')]={'Auto-Submitted':_0xa3b3('0x35'),'X-Auto-Response-Suppress':_0xa3b3('0x36'),'Precedence':_0xa3b3('0x37')};return mailRpc['sendMailMessage'](_0x2d1918,_0x383939)[_0xa3b3('0x38')](function(_0x3b9422){logger['info'](_0xa3b3('0x39'),_0xb0e80d);_0x383939['messageId']=_0x3b9422[_0xa3b3('0x1b')][_0xa3b3('0x3a')];return rpc[_0x102e49+_0xa3b3('0x3b')][_0xa3b3('0x3c')](_0x383939);})[_0xa3b3('0x38')](function(_0x127960){logger['info'](_0xa3b3('0x12'),_0xb0e80d,JSON[_0xa3b3('0x3d')](_0x127960));})['catch'](function(_0x21ce27){logger['error']('[RPC][%s][AUTOREPLY]\x20%s',_0xb0e80d,JSON[_0xa3b3('0x3d')](_0x21ce27));})[_0xa3b3('0x3e')](function(){Promise[_0xa3b3('0x3f')]()[_0xa3b3('0x38')](function(){if(_0x3564ac[0x0]!=='2'||_0x202749['autoreplyExecuted'])return;return rpc[_0x102e49+_0xa3b3('0x40')][_0xa3b3('0x41')](_0x202749['id'],{'autoreplyExecuted':!![]})[_0xa3b3('0x38')](function(_0xfd99a8){logger[_0xa3b3('0x11')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0xb0e80d,JSON[_0xa3b3('0x3d')](_0xfd99a8));})[_0xa3b3('0x42')](function(_0x35c241){logger[_0xa3b3('0x43')](_0xa3b3('0x44'),_0xb0e80d,JSON['stringify'](_0x35c241));});})['then'](function(){_0x4fa1f3[_0xa3b3('0x13')]();});});}else{return rpc[this[_0xa3b3('0x17')]+_0xa3b3('0x3b')][_0xa3b3('0x3c')](_0x383939)['then'](function(_0x44c139){logger[_0xa3b3('0x11')](_0xa3b3('0x12'),_0xb0e80d,_0x383939[_0xa3b3('0x19')]);})['catch'](function(_0x39b48b){logger[_0xa3b3('0x43')]('[%s][AUTOREPLY]\x20%s',_0xb0e80d,JSON[_0xa3b3('0x3d')](_0x39b48b));})['finally'](function(){Promise[_0xa3b3('0x3f')]()[_0xa3b3('0x38')](function(){if(_0x3564ac[0x0]!=='2'||_0x202749['autoreplyExecuted'])return;return rpc[_0x102e49+_0xa3b3('0x40')][_0xa3b3('0x41')](_0x202749['id'],{'autoreplyExecuted':!![]})[_0xa3b3('0x38')](function(_0x5a064e){logger[_0xa3b3('0x11')](_0xa3b3('0x45'),_0xb0e80d,JSON[_0xa3b3('0x3d')](_0x5a064e));})[_0xa3b3('0x42')](function(_0x59e974){logger[_0xa3b3('0x43')](_0xa3b3('0x44'),_0xb0e80d,JSON[_0xa3b3('0x3d')](_0x59e974));});})['then'](function(){_0x4fa1f3[_0xa3b3('0x13')]();});});}}}catch(_0x315343){logger[_0xa3b3('0x43')](_0xa3b3('0x12'),_0xb0e80d,JSON[_0xa3b3('0x3d')](_0x315343));_0x4fa1f3['stop']();}};};