Built motion from commit 3e059bc2.|2.5.32
[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 _0x99b5=['create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','Interaction','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','update','stop','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../mailRpc','consequence','isNil','interaction','created','info','[%s][AUTOREPLY]\x20%s','next','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','channel','contact','format','YYYY-MM-DD\x20HH:mm:ss','mail','body','getMustacheRender','message','from','subject','startsWith','Re:','Re:\x20','ChatWebsiteId','AccountId','upperFirst','Message','service','account','Smtp','host','port','secure','authentication','auth','pass','messageId','html','<div\x20id=\x22xm-mail-content\x22>','<div\x20id=\x22xm-mail-content\x22','</div>','headers','auto-replied','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT'];(function(_0x1314d4,_0xb0b16d){var _0x584ba5=function(_0x394269){while(--_0x394269){_0x1314d4['push'](_0x1314d4['shift']());}};_0x584ba5(++_0xb0b16d);}(_0x99b5,0x1af));var _0x599b=function(_0x251ed1,_0x508c52){_0x251ed1=_0x251ed1-0x0;var _0x3816be=_0x99b5[_0x251ed1];return _0x3816be;};'use strict';var _=require(_0x599b('0x0'));var moment=require(_0x599b('0x1'));var utils=require(_0x599b('0x2'));var logger=require(_0x599b('0x3'))(_0x599b('0x4'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x599b('0x5')),'faxMessage':require(_0x599b('0x6')),'whatsappMessage':require(_0x599b('0x7')),'chatInteraction':require(_0x599b('0x8')),'openchannelInteraction':require(_0x599b('0x9')),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require(_0x599b('0xa')),'faxInteraction':require(_0x599b('0xb')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require(_0x599b('0xc'));exports[_0x599b('0xd')]=function(_0x40230b,_0x4a0958){return function(_0xf34d){try{if(_0x4a0958[0x0]==='1'&&(_[_0x599b('0xe')](this[_0x599b('0xf')][_0x599b('0x10')])||!this['interaction'][_0x599b('0x10')])){logger[_0x599b('0x11')](_0x599b('0x12'),_0x40230b,'Autoreply\x20already\x20sent');return _0xf34d[_0x599b('0x13')]();}if(_0x4a0958[0x0]==='2'&&this[_0x599b('0xf')][_0x599b('0x14')]){logger['info'](_0x599b('0x15'),_0x40230b,_0x599b('0x16'));return _0xf34d[_0x599b('0x13')]();}var _0x12b5b2=this[_0x599b('0x17')];var _0x3bd9ce={'ContactId':this[_0x599b('0x18')]['id'],'sentAt':moment()[_0x599b('0x19')](_0x599b('0x1a')),'direction':'out'};if(this[_0x599b('0x17')]===_0x599b('0x1b')){_0x3bd9ce[_0x599b('0x1c')]=utils[_0x599b('0x1d')](_0x4a0958[0x2],this);}else{_0x3bd9ce[_0x599b('0x1c')]=utils[_0x599b('0x1d')](_0x4a0958[0x1],this);}if(this[_0x599b('0x1e')]){_0x3bd9ce['to']=this[_0x599b('0x1e')][_0x599b('0x1f')]||'';if(this[_0x599b('0x17')]===_0x599b('0x1b')&&_0x4a0958[0x1]==='1'){_0x3bd9ce['cc']=this[_0x599b('0x1e')]['cc']||'';}_0x3bd9ce[_0x599b('0x1f')]=this[_0x599b('0x1e')]['to']||'';_0x3bd9ce['phone']=this['message']['phone']||'';_0x3bd9ce['read']=!![];if(this[_0x599b('0x1e')]['subject']){_0x3bd9ce['subject']='';_0x3bd9ce[_0x599b('0x20')]+=_[_0x599b('0x21')](this[_0x599b('0x1e')][_0x599b('0x20')],_0x599b('0x22'))?'':_0x599b('0x23');_0x3bd9ce[_0x599b('0x20')]+=this[_0x599b('0x1e')][_0x599b('0x20')];}}if(this[_0x599b('0x17')]==='chat'){_0x3bd9ce[_0x599b('0x24')]=this['account']['id'];}else{_0x3bd9ce[_['upperFirst'](this[_0x599b('0x17')])+_0x599b('0x25')]=this['account']['id'];}_0x3bd9ce[_[_0x599b('0x26')](this['channel'])+'InteractionId']=this[_0x599b('0xf')]['id'];var _0x58249e=this[_0x599b('0xf')];if(rpc[this[_0x599b('0x17')]+_0x599b('0x27')]){if(this['channel']===_0x599b('0x1b')){var _0x3e7b8b={'tls':{'rejectUnauthorized':![]}};if(this['account']['Smtp'][_0x599b('0x28')]){_0x3e7b8b['service']=this[_0x599b('0x29')][_0x599b('0x2a')]['service'];}else{_0x3e7b8b[_0x599b('0x2b')]=this[_0x599b('0x29')][_0x599b('0x2a')][_0x599b('0x2b')];_0x3e7b8b[_0x599b('0x2c')]=this[_0x599b('0x29')][_0x599b('0x2a')][_0x599b('0x2c')];_0x3e7b8b[_0x599b('0x2d')]=this[_0x599b('0x29')][_0x599b('0x2a')][_0x599b('0x2d')];}if(this[_0x599b('0x29')][_0x599b('0x2a')][_0x599b('0x2e')]){_0x3e7b8b[_0x599b('0x2f')]={'user':this['account'][_0x599b('0x2a')]['user'],'pass':this[_0x599b('0x29')][_0x599b('0x2a')][_0x599b('0x30')]};}_0x3bd9ce['inReplyTo']=this['message'][_0x599b('0x31')];_0x3bd9ce[_0x599b('0x32')]=_0x599b('0x33')+_['replace'](_0x3bd9ce[_0x599b('0x1c')],_0x599b('0x34'),'<div')+_0x599b('0x35');_0x3bd9ce[_0x599b('0x36')]={'Auto-Submitted':_0x599b('0x37'),'X-Auto-Response-Suppress':'All','Precedence':'auto_reply'};return mailRpc[_0x599b('0x38')](_0x3e7b8b,_0x3bd9ce)[_0x599b('0x39')](function(_0x228ba2){logger[_0x599b('0x11')](_0x599b('0x3a'),_0x40230b);_0x3bd9ce[_0x599b('0x31')]=_0x228ba2[_0x599b('0x1e')]['messageId'];return rpc[_0x12b5b2+_0x599b('0x27')][_0x599b('0x3b')](_0x3bd9ce);})[_0x599b('0x39')](function(_0x5cb5fe){logger[_0x599b('0x11')](_0x599b('0x12'),_0x40230b,JSON[_0x599b('0x3c')](_0x5cb5fe));})[_0x599b('0x3d')](function(_0x103977){logger[_0x599b('0x3e')](_0x599b('0x3f'),_0x40230b,JSON[_0x599b('0x3c')](_0x103977));})[_0x599b('0x40')](function(){Promise[_0x599b('0x41')]()['then'](function(){if(_0x4a0958[0x0]!=='2'||_0x58249e['autoreplyExecuted'])return;return rpc[_0x12b5b2+_0x599b('0x42')]['update'](_0x58249e['id'],{'autoreplyExecuted':!![]})[_0x599b('0x39')](function(_0x1915bc){logger[_0x599b('0x11')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x40230b,JSON['stringify'](_0x1915bc));})[_0x599b('0x3d')](function(_0x14e9ba){logger[_0x599b('0x3e')](_0x599b('0x43'),_0x40230b,JSON[_0x599b('0x3c')](_0x14e9ba));});})[_0x599b('0x39')](function(){_0xf34d[_0x599b('0x13')]();});});}else{return rpc[this[_0x599b('0x17')]+_0x599b('0x27')][_0x599b('0x3b')](_0x3bd9ce)[_0x599b('0x39')](function(_0x1d52bc){logger[_0x599b('0x11')](_0x599b('0x12'),_0x40230b,_0x3bd9ce[_0x599b('0x1c')]);})[_0x599b('0x3d')](function(_0x3a02f8){logger['error'](_0x599b('0x12'),_0x40230b,JSON[_0x599b('0x3c')](_0x3a02f8));})[_0x599b('0x40')](function(){Promise[_0x599b('0x41')]()[_0x599b('0x39')](function(){if(_0x4a0958[0x0]!=='2'||_0x58249e[_0x599b('0x14')])return;return rpc[_0x12b5b2+_0x599b('0x42')][_0x599b('0x44')](_0x58249e['id'],{'autoreplyExecuted':!![]})['then'](function(_0x24ce5e){logger['info'](_0x599b('0x15'),_0x40230b,JSON[_0x599b('0x3c')](_0x24ce5e));})[_0x599b('0x3d')](function(_0x3e9690){logger[_0x599b('0x3e')](_0x599b('0x43'),_0x40230b,JSON['stringify'](_0x3e9690));});})[_0x599b('0x39')](function(){_0xf34d[_0x599b('0x13')]();});});}}}catch(_0x58375d){logger[_0x599b('0x3e')](_0x599b('0x12'),_0x40230b,JSON[_0x599b('0x3c')](_0x58375d));_0xf34d[_0x599b('0x45')]();}};};