Built motion from commit 55091a5c.|2.6.30
[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 _0xa275=['auto-replied','All','auto_reply','sendMailMessage','smtpOptions','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','Interaction','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','channel','mail','isAutoreply','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','isNil','created','interaction','Autoreply\x20already\x20sent','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','body','getMustacheRender','message','from','phone','subject','startsWith','Re:','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','Message','inReplyTo','messageId','html','<div\x20id=\x22xm-mail-content\x22>','<div\x20id=\x22xm-mail-content\x22','<div','headers'];(function(_0x164b02,_0x36cc71){var _0x4abe99=function(_0x30a612){while(--_0x30a612){_0x164b02['push'](_0x164b02['shift']());}};_0x4abe99(++_0x36cc71);}(_0xa275,0xec));var _0x5a27=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xa275[_0x122ef9];return _0x42fba0;};'use strict';var _=require('lodash');var moment=require('moment');var utils=require(_0x5a27('0x0'));var logger=require(_0x5a27('0x1'))(_0x5a27('0x2'));var rpc={'chatMessage':require(_0x5a27('0x3')),'openchannelMessage':require(_0x5a27('0x4')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x5a27('0x5')),'faxMessage':require(_0x5a27('0x6')),'whatsappMessage':require(_0x5a27('0x7')),'chatInteraction':require(_0x5a27('0x8')),'openchannelInteraction':require(_0x5a27('0x9')),'mailInteraction':require(_0x5a27('0xa')),'smsInteraction':require(_0x5a27('0xb')),'faxInteraction':require(_0x5a27('0xc')),'whatsappInteraction':require(_0x5a27('0xd'))};var mailRpc=require(_0x5a27('0xe'));exports[_0x5a27('0xf')]=function(_0x2c8718,_0x168710,_0x269d66,_0x271768){return function(_0x7ffba9){try{var _0x526d7f=this[_0x5a27('0x10')];if(_0x526d7f===_0x5a27('0x11')&&_0x271768['body'][_0x5a27('0x12')]){logger[_0x5a27('0x13')](_0x5a27('0x14'),_0x2c8718,_0x5a27('0x15'));return _0x7ffba9[_0x5a27('0x16')]();}if(_0x168710[0x0]==='1'&&(_[_0x5a27('0x17')](this['interaction'][_0x5a27('0x18')])||!this[_0x5a27('0x19')]['created'])){logger[_0x5a27('0x13')](_0x5a27('0x14'),_0x2c8718,_0x5a27('0x1a'));return _0x7ffba9['next']();}if(_0x168710[0x0]==='2'&&this[_0x5a27('0x19')][_0x5a27('0x1b')]){logger[_0x5a27('0x13')](_0x5a27('0x1c'),_0x2c8718,_0x5a27('0x1d'));return _0x7ffba9['next']();}var _0x490660={'ContactId':this[_0x5a27('0x1e')]['id'],'sentAt':moment()[_0x5a27('0x1f')](_0x5a27('0x20')),'direction':_0x5a27('0x21')};if(this[_0x5a27('0x10')]===_0x5a27('0x11')){_0x490660[_0x5a27('0x22')]=utils[_0x5a27('0x23')](_0x168710[0x2],this);}else{_0x490660[_0x5a27('0x22')]=utils[_0x5a27('0x23')](_0x168710[0x1],this);}if(this['message']){_0x490660['to']=this[_0x5a27('0x24')][_0x5a27('0x25')]||'';if(this[_0x5a27('0x10')]===_0x5a27('0x11')&&_0x168710[0x1]==='1'){_0x490660['cc']=this[_0x5a27('0x24')]['cc']||'';}_0x490660[_0x5a27('0x25')]=this[_0x5a27('0x24')]['to']||'';_0x490660[_0x5a27('0x26')]=this['message'][_0x5a27('0x26')]||'';_0x490660['read']=!![];if(this[_0x5a27('0x24')][_0x5a27('0x27')]){_0x490660[_0x5a27('0x27')]='';_0x490660[_0x5a27('0x27')]+=_[_0x5a27('0x28')](this[_0x5a27('0x24')][_0x5a27('0x27')],_0x5a27('0x29'))?'':'Re:\x20';_0x490660[_0x5a27('0x27')]+=this[_0x5a27('0x24')][_0x5a27('0x27')];}}if(this[_0x5a27('0x10')]===_0x5a27('0x2a')){_0x490660[_0x5a27('0x2b')]=this['account']['id'];}else{_0x490660[_[_0x5a27('0x2c')](this[_0x5a27('0x10')])+_0x5a27('0x2d')]=this[_0x5a27('0x2e')]['id'];}_0x490660[_[_0x5a27('0x2c')](this[_0x5a27('0x10')])+_0x5a27('0x2f')]=this[_0x5a27('0x19')]['id'];var _0x129660=this[_0x5a27('0x19')];if(rpc[this[_0x5a27('0x10')]+_0x5a27('0x30')]){if(this[_0x5a27('0x10')]===_0x5a27('0x11')){_0x490660[_0x5a27('0x31')]=this['message'][_0x5a27('0x32')];_0x490660[_0x5a27('0x33')]=_0x5a27('0x34')+_['replace'](_0x490660['body'],_0x5a27('0x35'),_0x5a27('0x36'))+'</div>';_0x490660[_0x5a27('0x37')]={'Auto-Submitted':_0x5a27('0x38'),'X-Auto-Response-Suppress':_0x5a27('0x39'),'Precedence':_0x5a27('0x3a')};return mailRpc[_0x5a27('0x3b')](this[_0x5a27('0x2e')][_0x5a27('0x3c')],_0x490660)[_0x5a27('0x3d')](function(_0x5318da){logger[_0x5a27('0x13')](_0x5a27('0x3e'),_0x2c8718);_0x490660[_0x5a27('0x32')]=_0x5318da['message'][_0x5a27('0x32')];return rpc[_0x526d7f+_0x5a27('0x30')][_0x5a27('0x3f')](_0x490660);})[_0x5a27('0x3d')](function(_0x319ff5){logger[_0x5a27('0x13')](_0x5a27('0x14'),_0x2c8718,JSON[_0x5a27('0x40')](_0x319ff5));})[_0x5a27('0x41')](function(_0x3a5839){logger[_0x5a27('0x42')](_0x5a27('0x43'),_0x2c8718,JSON[_0x5a27('0x40')](_0x3a5839));})[_0x5a27('0x44')](function(){Promise[_0x5a27('0x45')]()[_0x5a27('0x3d')](function(){if(_0x168710[0x0]!=='2'||_0x129660['autoreplyExecuted'])return;return rpc[_0x526d7f+_0x5a27('0x46')][_0x5a27('0x47')](_0x129660['id'],{'autoreplyExecuted':!![]})[_0x5a27('0x3d')](function(_0x237e9d){logger[_0x5a27('0x13')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x2c8718,JSON[_0x5a27('0x40')](_0x237e9d));})[_0x5a27('0x41')](function(_0x481223){logger[_0x5a27('0x42')](_0x5a27('0x48'),_0x2c8718,JSON['stringify'](_0x481223));});})['then'](function(){_0x7ffba9[_0x5a27('0x16')]();});});}else{return rpc[this[_0x5a27('0x10')]+_0x5a27('0x30')][_0x5a27('0x3f')](_0x490660)[_0x5a27('0x3d')](function(){logger[_0x5a27('0x13')](_0x5a27('0x14'),_0x2c8718,_0x490660[_0x5a27('0x22')]);})[_0x5a27('0x41')](function(_0x46b8ef){logger[_0x5a27('0x42')](_0x5a27('0x14'),_0x2c8718,JSON[_0x5a27('0x40')](_0x46b8ef));})[_0x5a27('0x44')](function(){Promise['resolve']()[_0x5a27('0x3d')](function(){if(_0x168710[0x0]!=='2'||_0x129660[_0x5a27('0x1b')])return;return rpc[_0x526d7f+'Interaction'][_0x5a27('0x47')](_0x129660['id'],{'autoreplyExecuted':!![]})['then'](function(_0x1e5833){logger['info']('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x2c8718,JSON['stringify'](_0x1e5833));})[_0x5a27('0x41')](function(_0x541eff){logger['error'](_0x5a27('0x48'),_0x2c8718,JSON['stringify'](_0x541eff));});})[_0x5a27('0x3d')](function(){_0x7ffba9[_0x5a27('0x16')]();});});}}}catch(_0x3fc9a6){logger[_0x5a27('0x42')]('[%s][AUTOREPLY]\x20%s',_0x2c8718,JSON[_0x5a27('0x40')](_0x3fc9a6));_0x7ffba9['stop']();}};};