Built motion from commit 0900f080.|2.5.45
[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 _0x9e5d=['service','Smtp','host','port','secure','authentication','auth','user','pass','<div\x20id=\x22xm-mail-content\x22>','<div\x20id=\x22xm-mail-content\x22','<div','</div>','All','auto_reply','sendMailMessage','[%s][AUTOREPLY]\x20SMTP\x20SENT','messageId','create','then','catch','error','[RPC][%s][AUTOREPLY]\x20%s','stringify','finally','resolve','autoreplyExecuted','Interaction','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/chatInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','channel','mail','[%s][AUTOREPLY]\x20%s','next','isNil','interaction','info','Autoreply\x20already\x20sent','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','out','body','getMustacheRender','message','from','phone','read','subject','startsWith','Re:','Re:\x20','chat','ChatWebsiteId','account','AccountId','InteractionId','Message'];(function(_0x3e724f,_0x4949bf){var _0x21427c=function(_0x463e4f){while(--_0x463e4f){_0x3e724f['push'](_0x3e724f['shift']());}};_0x21427c(++_0x4949bf);}(_0x9e5d,0xb7));var _0xd9e5=function(_0x1147ab,_0x10e72b){_0x1147ab=_0x1147ab-0x0;var _0x55cb5a=_0x9e5d[_0x1147ab];return _0x55cb5a;};'use strict';var _=require(_0xd9e5('0x0'));var moment=require(_0xd9e5('0x1'));var utils=require(_0xd9e5('0x2'));var logger=require(_0xd9e5('0x3'))(_0xd9e5('0x4'));var rpc={'chatMessage':require(_0xd9e5('0x5')),'openchannelMessage':require(_0xd9e5('0x6')),'mailMessage':require(_0xd9e5('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xd9e5('0x8')),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0xd9e5('0x9')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require(_0xd9e5('0xa')),'smsInteraction':require(_0xd9e5('0xb')),'faxInteraction':require(_0xd9e5('0xc')),'whatsappInteraction':require(_0xd9e5('0xd'))};var mailRpc=require(_0xd9e5('0xe'));exports[_0xd9e5('0xf')]=function(_0x554afe,_0x45645f,_0x491706,_0x19c3fc){return function(_0x2678d3){try{var _0x49c345=this[_0xd9e5('0x10')];if(_0x49c345===_0xd9e5('0x11')&&_0x19c3fc['body']['isAutoreply']){logger['info'](_0xd9e5('0x12'),_0x554afe,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x2678d3[_0xd9e5('0x13')]();}if(_0x45645f[0x0]==='1'&&(_[_0xd9e5('0x14')](this['interaction']['created'])||!this[_0xd9e5('0x15')]['created'])){logger[_0xd9e5('0x16')](_0xd9e5('0x12'),_0x554afe,_0xd9e5('0x17'));return _0x2678d3[_0xd9e5('0x13')]();}if(_0x45645f[0x0]==='2'&&this[_0xd9e5('0x15')]['autoreplyExecuted']){logger[_0xd9e5('0x16')](_0xd9e5('0x18'),_0x554afe,_0xd9e5('0x19'));return _0x2678d3[_0xd9e5('0x13')]();}var _0x5a4815={'ContactId':this[_0xd9e5('0x1a')]['id'],'sentAt':moment()[_0xd9e5('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xd9e5('0x1c')};if(this[_0xd9e5('0x10')]==='mail'){_0x5a4815[_0xd9e5('0x1d')]=utils[_0xd9e5('0x1e')](_0x45645f[0x2],this);}else{_0x5a4815['body']=utils['getMustacheRender'](_0x45645f[0x1],this);}if(this[_0xd9e5('0x1f')]){_0x5a4815['to']=this[_0xd9e5('0x1f')][_0xd9e5('0x20')]||'';if(this[_0xd9e5('0x10')]===_0xd9e5('0x11')&&_0x45645f[0x1]==='1'){_0x5a4815['cc']=this[_0xd9e5('0x1f')]['cc']||'';}_0x5a4815[_0xd9e5('0x20')]=this[_0xd9e5('0x1f')]['to']||'';_0x5a4815[_0xd9e5('0x21')]=this[_0xd9e5('0x1f')][_0xd9e5('0x21')]||'';_0x5a4815[_0xd9e5('0x22')]=!![];if(this[_0xd9e5('0x1f')][_0xd9e5('0x23')]){_0x5a4815[_0xd9e5('0x23')]='';_0x5a4815[_0xd9e5('0x23')]+=_[_0xd9e5('0x24')](this['message'][_0xd9e5('0x23')],_0xd9e5('0x25'))?'':_0xd9e5('0x26');_0x5a4815[_0xd9e5('0x23')]+=this[_0xd9e5('0x1f')][_0xd9e5('0x23')];}}if(this[_0xd9e5('0x10')]===_0xd9e5('0x27')){_0x5a4815[_0xd9e5('0x28')]=this[_0xd9e5('0x29')]['id'];}else{_0x5a4815[_['upperFirst'](this[_0xd9e5('0x10')])+_0xd9e5('0x2a')]=this[_0xd9e5('0x29')]['id'];}_0x5a4815[_['upperFirst'](this[_0xd9e5('0x10')])+_0xd9e5('0x2b')]=this['interaction']['id'];var _0x6c62c6=this[_0xd9e5('0x15')];if(rpc[this[_0xd9e5('0x10')]+_0xd9e5('0x2c')]){if(this[_0xd9e5('0x10')]===_0xd9e5('0x11')){var _0x35843e={'tls':{'rejectUnauthorized':![]}};if(this[_0xd9e5('0x29')]['Smtp'][_0xd9e5('0x2d')]){_0x35843e[_0xd9e5('0x2d')]=this['account'][_0xd9e5('0x2e')]['service'];}else{_0x35843e[_0xd9e5('0x2f')]=this[_0xd9e5('0x29')][_0xd9e5('0x2e')]['host'];_0x35843e[_0xd9e5('0x30')]=this[_0xd9e5('0x29')]['Smtp'][_0xd9e5('0x30')];_0x35843e['secure']=this[_0xd9e5('0x29')][_0xd9e5('0x2e')][_0xd9e5('0x31')];}if(this[_0xd9e5('0x29')][_0xd9e5('0x2e')][_0xd9e5('0x32')]){_0x35843e[_0xd9e5('0x33')]={'user':this[_0xd9e5('0x29')][_0xd9e5('0x2e')][_0xd9e5('0x34')],'pass':this[_0xd9e5('0x29')][_0xd9e5('0x2e')][_0xd9e5('0x35')]};}_0x5a4815['inReplyTo']=this[_0xd9e5('0x1f')]['messageId'];_0x5a4815['html']=_0xd9e5('0x36')+_['replace'](_0x5a4815[_0xd9e5('0x1d')],_0xd9e5('0x37'),_0xd9e5('0x38'))+_0xd9e5('0x39');_0x5a4815['headers']={'Auto-Submitted':'auto-replied','X-Auto-Response-Suppress':_0xd9e5('0x3a'),'Precedence':_0xd9e5('0x3b')};return mailRpc[_0xd9e5('0x3c')](_0x35843e,_0x5a4815)['then'](function(_0x2b06aa){logger[_0xd9e5('0x16')](_0xd9e5('0x3d'),_0x554afe);_0x5a4815[_0xd9e5('0x3e')]=_0x2b06aa[_0xd9e5('0x1f')][_0xd9e5('0x3e')];return rpc[_0x49c345+'Message'][_0xd9e5('0x3f')](_0x5a4815);})[_0xd9e5('0x40')](function(_0x5ae35){logger[_0xd9e5('0x16')]('[%s][AUTOREPLY]\x20%s',_0x554afe,JSON['stringify'](_0x5ae35));})[_0xd9e5('0x41')](function(_0x4b213f){logger[_0xd9e5('0x42')](_0xd9e5('0x43'),_0x554afe,JSON[_0xd9e5('0x44')](_0x4b213f));})[_0xd9e5('0x45')](function(){Promise[_0xd9e5('0x46')]()[_0xd9e5('0x40')](function(){if(_0x45645f[0x0]!=='2'||_0x6c62c6[_0xd9e5('0x47')])return;return rpc[_0x49c345+_0xd9e5('0x48')][_0xd9e5('0x49')](_0x6c62c6['id'],{'autoreplyExecuted':!![]})['then'](function(_0x406b67){logger['info'](_0xd9e5('0x18'),_0x554afe,JSON[_0xd9e5('0x44')](_0x406b67));})[_0xd9e5('0x41')](function(_0x1bdeb3){logger[_0xd9e5('0x42')](_0xd9e5('0x4a'),_0x554afe,JSON[_0xd9e5('0x44')](_0x1bdeb3));});})[_0xd9e5('0x40')](function(){_0x2678d3['next']();});});}else{return rpc[this[_0xd9e5('0x10')]+'Message']['create'](_0x5a4815)[_0xd9e5('0x40')](function(_0xde6bce){logger[_0xd9e5('0x16')](_0xd9e5('0x12'),_0x554afe,_0x5a4815[_0xd9e5('0x1d')]);})['catch'](function(_0x47bb23){logger['error'](_0xd9e5('0x12'),_0x554afe,JSON[_0xd9e5('0x44')](_0x47bb23));})[_0xd9e5('0x45')](function(){Promise[_0xd9e5('0x46')]()['then'](function(){if(_0x45645f[0x0]!=='2'||_0x6c62c6[_0xd9e5('0x47')])return;return rpc[_0x49c345+_0xd9e5('0x48')][_0xd9e5('0x49')](_0x6c62c6['id'],{'autoreplyExecuted':!![]})[_0xd9e5('0x40')](function(_0x2b8d7f){logger['info'](_0xd9e5('0x18'),_0x554afe,JSON[_0xd9e5('0x44')](_0x2b8d7f));})[_0xd9e5('0x41')](function(_0x51e2c0){logger['error'](_0xd9e5('0x4a'),_0x554afe,JSON[_0xd9e5('0x44')](_0x51e2c0));});})[_0xd9e5('0x40')](function(){_0x2678d3['next']();});});}}}catch(_0x3b0e75){logger[_0xd9e5('0x42')](_0xd9e5('0x12'),_0x554afe,JSON['stringify'](_0x3b0e75));_0x2678d3[_0xd9e5('0x4b')]();}};};