f949303745ed1909fea810ea7f4f04e7f1545e05
[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 _0x527e=['messageId','<div\x20id=\x22xm-mail-content\x22','<div','headers','auto-replied','auto_reply','then','create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','resolve','autoreplyExecuted','Interaction','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','update','stop','./utils','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','channel','mail','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','interaction','created','Autoreply\x20already\x20sent','next','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','format','out','body','getMustacheRender','message','from','phone','read','subject','startsWith','Re:','chat','account','upperFirst','inReplyTo'];(function(_0x5eeb98,_0x127baf){var _0x32acfb=function(_0x103d13){while(--_0x103d13){_0x5eeb98['push'](_0x5eeb98['shift']());}};_0x32acfb(++_0x127baf);}(_0x527e,0x82));var _0xe527=function(_0x3035d8,_0x5703f3){_0x3035d8=_0x3035d8-0x0;var _0x387c35=_0x527e[_0x3035d8];return _0x387c35;};'use strict';var _=require('lodash');var moment=require('moment');var utils=require(_0xe527('0x0'));var logger=require('../../../../config/logger')(_0xe527('0x1'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0xe527('0x2')),'mailMessage':require(_0xe527('0x3')),'smsMessage':require(_0xe527('0x4')),'faxMessage':require(_0xe527('0x5')),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0xe527('0x6')),'openchannelInteraction':require(_0xe527('0x7')),'mailInteraction':require(_0xe527('0x8')),'smsInteraction':require('../../rpc/smsInteraction'),'faxInteraction':require(_0xe527('0x9')),'whatsappInteraction':require(_0xe527('0xa'))};var mailRpc=require(_0xe527('0xb'));exports['consequence']=function(_0x24fe98,_0x3c2a09,_0xa4a929,_0x450ec8){return function(_0x27f875){try{var _0x10f4ac=this[_0xe527('0xc')];if(_0x10f4ac===_0xe527('0xd')&&_0x450ec8['body']['isAutoreply']){logger[_0xe527('0xe')](_0xe527('0xf'),_0x24fe98,_0xe527('0x10'));return _0x27f875['next']();}if(_0x3c2a09[0x0]==='1'&&(_['isNil'](this[_0xe527('0x11')][_0xe527('0x12')])||!this[_0xe527('0x11')][_0xe527('0x12')])){logger['info'](_0xe527('0xf'),_0x24fe98,_0xe527('0x13'));return _0x27f875[_0xe527('0x14')]();}if(_0x3c2a09[0x0]==='2'&&this[_0xe527('0x11')]['autoreplyExecuted']){logger[_0xe527('0xe')](_0xe527('0x15'),_0x24fe98,_0xe527('0x16'));return _0x27f875[_0xe527('0x14')]();}var _0xcb0cd7={'ContactId':this['contact']['id'],'sentAt':moment()[_0xe527('0x17')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xe527('0x18')};if(this['channel']===_0xe527('0xd')){_0xcb0cd7['body']=utils['getMustacheRender'](_0x3c2a09[0x2],this);}else{_0xcb0cd7[_0xe527('0x19')]=utils[_0xe527('0x1a')](_0x3c2a09[0x1],this);}if(this[_0xe527('0x1b')]){_0xcb0cd7['to']=this[_0xe527('0x1b')][_0xe527('0x1c')]||'';if(this[_0xe527('0xc')]===_0xe527('0xd')&&_0x3c2a09[0x1]==='1'){_0xcb0cd7['cc']=this[_0xe527('0x1b')]['cc']||'';}_0xcb0cd7[_0xe527('0x1c')]=this[_0xe527('0x1b')]['to']||'';_0xcb0cd7[_0xe527('0x1d')]=this['message'][_0xe527('0x1d')]||'';_0xcb0cd7[_0xe527('0x1e')]=!![];if(this[_0xe527('0x1b')]['subject']){_0xcb0cd7[_0xe527('0x1f')]='';_0xcb0cd7[_0xe527('0x1f')]+=_[_0xe527('0x20')](this['message']['subject'],_0xe527('0x21'))?'':'Re:\x20';_0xcb0cd7[_0xe527('0x1f')]+=this['message']['subject'];}}if(this['channel']===_0xe527('0x22')){_0xcb0cd7['ChatWebsiteId']=this[_0xe527('0x23')]['id'];}else{_0xcb0cd7[_[_0xe527('0x24')](this[_0xe527('0xc')])+'AccountId']=this['account']['id'];}_0xcb0cd7[_[_0xe527('0x24')](this['channel'])+'InteractionId']=this[_0xe527('0x11')]['id'];var _0x45c7e8=this[_0xe527('0x11')];if(rpc[this[_0xe527('0xc')]+'Message']){if(this[_0xe527('0xc')]===_0xe527('0xd')){_0xcb0cd7[_0xe527('0x25')]=this[_0xe527('0x1b')][_0xe527('0x26')];_0xcb0cd7['html']='<div\x20id=\x22xm-mail-content\x22>'+_['replace'](_0xcb0cd7[_0xe527('0x19')],_0xe527('0x27'),_0xe527('0x28'))+'</div>';_0xcb0cd7[_0xe527('0x29')]={'Auto-Submitted':_0xe527('0x2a'),'X-Auto-Response-Suppress':'All','Precedence':_0xe527('0x2b')};return mailRpc['sendMailMessage'](this[_0xe527('0x23')]['smtpOptions'],_0xcb0cd7)[_0xe527('0x2c')](function(_0x1657bd){logger[_0xe527('0xe')]('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x24fe98);_0xcb0cd7[_0xe527('0x26')]=_0x1657bd[_0xe527('0x1b')][_0xe527('0x26')];return rpc[_0x10f4ac+'Message'][_0xe527('0x2d')](_0xcb0cd7);})[_0xe527('0x2c')](function(_0xf3ac16){logger[_0xe527('0xe')](_0xe527('0xf'),_0x24fe98,JSON[_0xe527('0x2e')](_0xf3ac16));})[_0xe527('0x2f')](function(_0x356541){logger[_0xe527('0x30')](_0xe527('0x31'),_0x24fe98,JSON[_0xe527('0x2e')](_0x356541));})['finally'](function(){Promise[_0xe527('0x32')]()[_0xe527('0x2c')](function(){if(_0x3c2a09[0x0]!=='2'||_0x45c7e8[_0xe527('0x33')])return;return rpc[_0x10f4ac+_0xe527('0x34')]['update'](_0x45c7e8['id'],{'autoreplyExecuted':!![]})[_0xe527('0x2c')](function(_0x176f14){logger[_0xe527('0xe')](_0xe527('0x15'),_0x24fe98,JSON[_0xe527('0x2e')](_0x176f14));})[_0xe527('0x2f')](function(_0x35e9cd){logger[_0xe527('0x30')](_0xe527('0x35'),_0x24fe98,JSON[_0xe527('0x2e')](_0x35e9cd));});})[_0xe527('0x2c')](function(){_0x27f875[_0xe527('0x14')]();});});}else{return rpc[this['channel']+'Message']['create'](_0xcb0cd7)['then'](function(){logger[_0xe527('0xe')](_0xe527('0xf'),_0x24fe98,_0xcb0cd7[_0xe527('0x19')]);})[_0xe527('0x2f')](function(_0x52364c){logger[_0xe527('0x30')](_0xe527('0xf'),_0x24fe98,JSON[_0xe527('0x2e')](_0x52364c));})['finally'](function(){Promise[_0xe527('0x32')]()[_0xe527('0x2c')](function(){if(_0x3c2a09[0x0]!=='2'||_0x45c7e8['autoreplyExecuted'])return;return rpc[_0x10f4ac+_0xe527('0x34')][_0xe527('0x36')](_0x45c7e8['id'],{'autoreplyExecuted':!![]})[_0xe527('0x2c')](function(_0x51c7f9){logger[_0xe527('0xe')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x24fe98,JSON[_0xe527('0x2e')](_0x51c7f9));})[_0xe527('0x2f')](function(_0x18ad74){logger[_0xe527('0x30')](_0xe527('0x35'),_0x24fe98,JSON[_0xe527('0x2e')](_0x18ad74));});})[_0xe527('0x2c')](function(){_0x27f875[_0xe527('0x14')]();});});}}}catch(_0x2812b6){logger[_0xe527('0x30')](_0xe527('0xf'),_0x24fe98,JSON[_0xe527('0x2e')](_0x2812b6));_0x27f875[_0xe527('0x37')]();}};};