Built motion from commit e6806ed6.|2.6.0
[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 _0x3ce7=['phone','subject','startsWith','Re:\x20','chat','ChatWebsiteId','account','upperFirst','Message','messageId','<div\x20id=\x22xm-mail-content\x22>','replace','<div\x20id=\x22xm-mail-content\x22','</div>','auto-replied','All','auto_reply','sendMailMessage','smtpOptions','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','[RPC][%s][AUTOREPLY]\x20%s','finally','Interaction','update','error','resolve','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','mail','isAutoreply','[%s][AUTOREPLY]\x20%s','isNil','interaction','created','info','Autoreply\x20already\x20sent','next','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','body','getMustacheRender','message','from'];(function(_0x45509f,_0x4a2f97){var _0x27cbfe=function(_0x5ed79b){while(--_0x5ed79b){_0x45509f['push'](_0x45509f['shift']());}};_0x27cbfe(++_0x4a2f97);}(_0x3ce7,0xec));var _0x73ce=function(_0x4bca06,_0x181cee){_0x4bca06=_0x4bca06-0x0;var _0x3e291d=_0x3ce7[_0x4bca06];return _0x3e291d;};'use strict';var _=require('lodash');var moment=require('moment');var utils=require('./utils');var logger=require(_0x73ce('0x0'))(_0x73ce('0x1'));var rpc={'chatMessage':require(_0x73ce('0x2')),'openchannelMessage':require(_0x73ce('0x3')),'mailMessage':require(_0x73ce('0x4')),'smsMessage':require(_0x73ce('0x5')),'faxMessage':require(_0x73ce('0x6')),'whatsappMessage':require(_0x73ce('0x7')),'chatInteraction':require(_0x73ce('0x8')),'openchannelInteraction':require(_0x73ce('0x9')),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require(_0x73ce('0xa')),'faxInteraction':require(_0x73ce('0xb')),'whatsappInteraction':require(_0x73ce('0xc'))};var mailRpc=require(_0x73ce('0xd'));exports[_0x73ce('0xe')]=function(_0x561447,_0x1e6d74,_0x2009ea,_0x21ccd9){return function(_0x32de0f){try{var _0x484c85=this['channel'];if(_0x484c85===_0x73ce('0xf')&&_0x21ccd9['body'][_0x73ce('0x10')]){logger['info'](_0x73ce('0x11'),_0x561447,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x32de0f['next']();}if(_0x1e6d74[0x0]==='1'&&(_[_0x73ce('0x12')](this[_0x73ce('0x13')][_0x73ce('0x14')])||!this[_0x73ce('0x13')][_0x73ce('0x14')])){logger[_0x73ce('0x15')]('[%s][AUTOREPLY]\x20%s',_0x561447,_0x73ce('0x16'));return _0x32de0f[_0x73ce('0x17')]();}if(_0x1e6d74[0x0]==='2'&&this['interaction'][_0x73ce('0x18')]){logger[_0x73ce('0x15')](_0x73ce('0x19'),_0x561447,_0x73ce('0x1a'));return _0x32de0f[_0x73ce('0x17')]();}var _0x173477={'ContactId':this[_0x73ce('0x1b')]['id'],'sentAt':moment()[_0x73ce('0x1c')](_0x73ce('0x1d')),'direction':_0x73ce('0x1e')};if(this[_0x73ce('0x1f')]===_0x73ce('0xf')){_0x173477[_0x73ce('0x20')]=utils[_0x73ce('0x21')](_0x1e6d74[0x2],this);}else{_0x173477[_0x73ce('0x20')]=utils[_0x73ce('0x21')](_0x1e6d74[0x1],this);}if(this[_0x73ce('0x22')]){_0x173477['to']=this[_0x73ce('0x22')][_0x73ce('0x23')]||'';if(this[_0x73ce('0x1f')]===_0x73ce('0xf')&&_0x1e6d74[0x1]==='1'){_0x173477['cc']=this[_0x73ce('0x22')]['cc']||'';}_0x173477[_0x73ce('0x23')]=this['message']['to']||'';_0x173477[_0x73ce('0x24')]=this[_0x73ce('0x22')][_0x73ce('0x24')]||'';_0x173477['read']=!![];if(this[_0x73ce('0x22')]['subject']){_0x173477[_0x73ce('0x25')]='';_0x173477[_0x73ce('0x25')]+=_[_0x73ce('0x26')](this[_0x73ce('0x22')][_0x73ce('0x25')],'Re:')?'':_0x73ce('0x27');_0x173477['subject']+=this[_0x73ce('0x22')][_0x73ce('0x25')];}}if(this[_0x73ce('0x1f')]===_0x73ce('0x28')){_0x173477[_0x73ce('0x29')]=this[_0x73ce('0x2a')]['id'];}else{_0x173477[_[_0x73ce('0x2b')](this[_0x73ce('0x1f')])+'AccountId']=this['account']['id'];}_0x173477[_[_0x73ce('0x2b')](this[_0x73ce('0x1f')])+'InteractionId']=this[_0x73ce('0x13')]['id'];var _0x28ee71=this[_0x73ce('0x13')];if(rpc[this['channel']+_0x73ce('0x2c')]){if(this[_0x73ce('0x1f')]===_0x73ce('0xf')){_0x173477['inReplyTo']=this[_0x73ce('0x22')][_0x73ce('0x2d')];_0x173477['html']=_0x73ce('0x2e')+_[_0x73ce('0x2f')](_0x173477['body'],_0x73ce('0x30'),'<div')+_0x73ce('0x31');_0x173477['headers']={'Auto-Submitted':_0x73ce('0x32'),'X-Auto-Response-Suppress':_0x73ce('0x33'),'Precedence':_0x73ce('0x34')};return mailRpc[_0x73ce('0x35')](this['account'][_0x73ce('0x36')],_0x173477)[_0x73ce('0x37')](function(_0x51dfca){logger[_0x73ce('0x15')](_0x73ce('0x38'),_0x561447);_0x173477[_0x73ce('0x2d')]=_0x51dfca[_0x73ce('0x22')][_0x73ce('0x2d')];return rpc[_0x484c85+_0x73ce('0x2c')][_0x73ce('0x39')](_0x173477);})['then'](function(_0x574160){logger[_0x73ce('0x15')]('[%s][AUTOREPLY]\x20%s',_0x561447,JSON[_0x73ce('0x3a')](_0x574160));})[_0x73ce('0x3b')](function(_0x152d95){logger['error'](_0x73ce('0x3c'),_0x561447,JSON['stringify'](_0x152d95));})[_0x73ce('0x3d')](function(){Promise['resolve']()[_0x73ce('0x37')](function(){if(_0x1e6d74[0x0]!=='2'||_0x28ee71['autoreplyExecuted'])return;return rpc[_0x484c85+_0x73ce('0x3e')][_0x73ce('0x3f')](_0x28ee71['id'],{'autoreplyExecuted':!![]})[_0x73ce('0x37')](function(_0x5c41c4){logger[_0x73ce('0x15')](_0x73ce('0x19'),_0x561447,JSON[_0x73ce('0x3a')](_0x5c41c4));})['catch'](function(_0x2acf04){logger[_0x73ce('0x40')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x561447,JSON[_0x73ce('0x3a')](_0x2acf04));});})[_0x73ce('0x37')](function(){_0x32de0f[_0x73ce('0x17')]();});});}else{return rpc[this[_0x73ce('0x1f')]+_0x73ce('0x2c')][_0x73ce('0x39')](_0x173477)[_0x73ce('0x37')](function(){logger['info'](_0x73ce('0x11'),_0x561447,_0x173477[_0x73ce('0x20')]);})[_0x73ce('0x3b')](function(_0x30cdb){logger['error']('[%s][AUTOREPLY]\x20%s',_0x561447,JSON[_0x73ce('0x3a')](_0x30cdb));})['finally'](function(){Promise[_0x73ce('0x41')]()[_0x73ce('0x37')](function(){if(_0x1e6d74[0x0]!=='2'||_0x28ee71[_0x73ce('0x18')])return;return rpc[_0x484c85+_0x73ce('0x3e')]['update'](_0x28ee71['id'],{'autoreplyExecuted':!![]})[_0x73ce('0x37')](function(_0x13e407){logger['info'](_0x73ce('0x19'),_0x561447,JSON['stringify'](_0x13e407));})[_0x73ce('0x3b')](function(_0x16e7cd){logger['error'](_0x73ce('0x42'),_0x561447,JSON[_0x73ce('0x3a')](_0x16e7cd));});})['then'](function(){_0x32de0f[_0x73ce('0x17')]();});});}}}catch(_0x30280b){logger[_0x73ce('0x40')]('[%s][AUTOREPLY]\x20%s',_0x561447,JSON[_0x73ce('0x3a')](_0x30280b));_0x32de0f[_0x73ce('0x43')]();}};};