b7c1fc8a4abe03c0709b75950a8565d937a8ad2f
[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 _0xc9a2=['info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','isNil','interaction','created','Autoreply\x20already\x20sent','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','out','mail','getMustacheRender','message','from','phone','read','subject','Re:','Re:\x20','ChatWebsiteId','account','AccountId','upperFirst','InteractionId','service','Smtp','host','port','secure','authentication','auth','user','pass','inReplyTo','<div\x20id=\x22xm-mail-content\x22>','<div','</div>','headers','auto-replied','All','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','messageId','Message','create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','autoreplyExecuted','Interaction','update','resolve','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','lodash','moment','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/faxMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/whatsappInteraction','channel','body','isAutoreply'];(function(_0xa1e3e3,_0x29fe0e){var _0xc980e9=function(_0x1f5adc){while(--_0x1f5adc){_0xa1e3e3['push'](_0xa1e3e3['shift']());}};_0xc980e9(++_0x29fe0e);}(_0xc9a2,0x11b));var _0x2c9a=function(_0x540c39,_0x49b75d){_0x540c39=_0x540c39-0x0;var _0x5d04d7=_0xc9a2[_0x540c39];return _0x5d04d7;};'use strict';var _=require(_0x2c9a('0x0'));var moment=require(_0x2c9a('0x1'));var utils=require('./utils');var logger=require(_0x2c9a('0x2'))(_0x2c9a('0x3'));var rpc={'chatMessage':require(_0x2c9a('0x4')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x2c9a('0x5')),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0x2c9a('0x6')),'openchannelInteraction':require(_0x2c9a('0x7')),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require(_0x2c9a('0x8')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0x2c9a('0x9'))};var mailRpc=require('../../mailRpc');exports['consequence']=function(_0x3ed891,_0x5d859d,_0xda8917,_0x350441){return function(_0x34d447){try{var _0x2ca700=this[_0x2c9a('0xa')];if(_0x2ca700==='mail'&&_0x350441[_0x2c9a('0xb')][_0x2c9a('0xc')]){logger[_0x2c9a('0xd')](_0x2c9a('0xe'),_0x3ed891,_0x2c9a('0xf'));return _0x34d447[_0x2c9a('0x10')]();}if(_0x5d859d[0x0]==='1'&&(_[_0x2c9a('0x11')](this[_0x2c9a('0x12')][_0x2c9a('0x13')])||!this['interaction'][_0x2c9a('0x13')])){logger['info']('[%s][AUTOREPLY]\x20%s',_0x3ed891,_0x2c9a('0x14'));return _0x34d447[_0x2c9a('0x10')]();}if(_0x5d859d[0x0]==='2'&&this[_0x2c9a('0x12')]['autoreplyExecuted']){logger[_0x2c9a('0xd')](_0x2c9a('0x15'),_0x3ed891,_0x2c9a('0x16'));return _0x34d447[_0x2c9a('0x10')]();}var _0xe28035={'ContactId':this[_0x2c9a('0x17')]['id'],'sentAt':moment()[_0x2c9a('0x18')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x2c9a('0x19')};if(this[_0x2c9a('0xa')]===_0x2c9a('0x1a')){_0xe28035[_0x2c9a('0xb')]=utils[_0x2c9a('0x1b')](_0x5d859d[0x2],this);}else{_0xe28035[_0x2c9a('0xb')]=utils[_0x2c9a('0x1b')](_0x5d859d[0x1],this);}if(this[_0x2c9a('0x1c')]){_0xe28035['to']=this['message'][_0x2c9a('0x1d')]||'';if(this[_0x2c9a('0xa')]===_0x2c9a('0x1a')&&_0x5d859d[0x1]==='1'){_0xe28035['cc']=this[_0x2c9a('0x1c')]['cc']||'';}_0xe28035['from']=this[_0x2c9a('0x1c')]['to']||'';_0xe28035[_0x2c9a('0x1e')]=this['message'][_0x2c9a('0x1e')]||'';_0xe28035[_0x2c9a('0x1f')]=!![];if(this[_0x2c9a('0x1c')][_0x2c9a('0x20')]){_0xe28035[_0x2c9a('0x20')]='';_0xe28035[_0x2c9a('0x20')]+=_['startsWith'](this[_0x2c9a('0x1c')][_0x2c9a('0x20')],_0x2c9a('0x21'))?'':_0x2c9a('0x22');_0xe28035[_0x2c9a('0x20')]+=this[_0x2c9a('0x1c')][_0x2c9a('0x20')];}}if(this[_0x2c9a('0xa')]==='chat'){_0xe28035[_0x2c9a('0x23')]=this[_0x2c9a('0x24')]['id'];}else{_0xe28035[_['upperFirst'](this[_0x2c9a('0xa')])+_0x2c9a('0x25')]=this['account']['id'];}_0xe28035[_[_0x2c9a('0x26')](this['channel'])+_0x2c9a('0x27')]=this[_0x2c9a('0x12')]['id'];var _0x26bdb6=this[_0x2c9a('0x12')];if(rpc[this[_0x2c9a('0xa')]+'Message']){if(this[_0x2c9a('0xa')]===_0x2c9a('0x1a')){var _0x34c5bb={'tls':{'rejectUnauthorized':![]}};if(this['account']['Smtp'][_0x2c9a('0x28')]){_0x34c5bb['service']=this[_0x2c9a('0x24')][_0x2c9a('0x29')][_0x2c9a('0x28')];}else{_0x34c5bb[_0x2c9a('0x2a')]=this[_0x2c9a('0x24')][_0x2c9a('0x29')][_0x2c9a('0x2a')];_0x34c5bb[_0x2c9a('0x2b')]=this['account'][_0x2c9a('0x29')][_0x2c9a('0x2b')];_0x34c5bb[_0x2c9a('0x2c')]=this[_0x2c9a('0x24')][_0x2c9a('0x29')]['secure'];}if(this[_0x2c9a('0x24')]['Smtp'][_0x2c9a('0x2d')]){_0x34c5bb[_0x2c9a('0x2e')]={'user':this[_0x2c9a('0x24')][_0x2c9a('0x29')][_0x2c9a('0x2f')],'pass':this[_0x2c9a('0x24')][_0x2c9a('0x29')][_0x2c9a('0x30')]};}_0xe28035[_0x2c9a('0x31')]=this[_0x2c9a('0x1c')]['messageId'];_0xe28035['html']=_0x2c9a('0x32')+_['replace'](_0xe28035[_0x2c9a('0xb')],'<div\x20id=\x22xm-mail-content\x22',_0x2c9a('0x33'))+_0x2c9a('0x34');_0xe28035[_0x2c9a('0x35')]={'Auto-Submitted':_0x2c9a('0x36'),'X-Auto-Response-Suppress':_0x2c9a('0x37'),'Precedence':_0x2c9a('0x38')};return mailRpc[_0x2c9a('0x39')](_0x34c5bb,_0xe28035)[_0x2c9a('0x3a')](function(_0x3152ac){logger[_0x2c9a('0xd')](_0x2c9a('0x3b'),_0x3ed891);_0xe28035['messageId']=_0x3152ac[_0x2c9a('0x1c')][_0x2c9a('0x3c')];return rpc[_0x2ca700+_0x2c9a('0x3d')][_0x2c9a('0x3e')](_0xe28035);})[_0x2c9a('0x3a')](function(_0x50923e){logger[_0x2c9a('0xd')](_0x2c9a('0xe'),_0x3ed891,JSON[_0x2c9a('0x3f')](_0x50923e));})[_0x2c9a('0x40')](function(_0x58358f){logger[_0x2c9a('0x41')](_0x2c9a('0x42'),_0x3ed891,JSON['stringify'](_0x58358f));})[_0x2c9a('0x43')](function(){Promise['resolve']()[_0x2c9a('0x3a')](function(){if(_0x5d859d[0x0]!=='2'||_0x26bdb6[_0x2c9a('0x44')])return;return rpc[_0x2ca700+_0x2c9a('0x45')][_0x2c9a('0x46')](_0x26bdb6['id'],{'autoreplyExecuted':!![]})[_0x2c9a('0x3a')](function(_0x3c3996){logger[_0x2c9a('0xd')](_0x2c9a('0x15'),_0x3ed891,JSON[_0x2c9a('0x3f')](_0x3c3996));})[_0x2c9a('0x40')](function(_0x488fcb){logger[_0x2c9a('0x41')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x3ed891,JSON[_0x2c9a('0x3f')](_0x488fcb));});})[_0x2c9a('0x3a')](function(){_0x34d447[_0x2c9a('0x10')]();});});}else{return rpc[this[_0x2c9a('0xa')]+_0x2c9a('0x3d')][_0x2c9a('0x3e')](_0xe28035)[_0x2c9a('0x3a')](function(_0x1cb510){logger[_0x2c9a('0xd')](_0x2c9a('0xe'),_0x3ed891,_0xe28035[_0x2c9a('0xb')]);})['catch'](function(_0x33412b){logger['error']('[%s][AUTOREPLY]\x20%s',_0x3ed891,JSON['stringify'](_0x33412b));})['finally'](function(){Promise[_0x2c9a('0x47')]()['then'](function(){if(_0x5d859d[0x0]!=='2'||_0x26bdb6[_0x2c9a('0x44')])return;return rpc[_0x2ca700+'Interaction'][_0x2c9a('0x46')](_0x26bdb6['id'],{'autoreplyExecuted':!![]})[_0x2c9a('0x3a')](function(_0x6fe8ff){logger[_0x2c9a('0xd')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x3ed891,JSON[_0x2c9a('0x3f')](_0x6fe8ff));})['catch'](function(_0x92ceda){logger['error'](_0x2c9a('0x48'),_0x3ed891,JSON['stringify'](_0x92ceda));});})['then'](function(){_0x34d447[_0x2c9a('0x10')]();});});}}}catch(_0x24fd65){logger['error']('[%s][AUTOREPLY]\x20%s',_0x3ed891,JSON[_0x2c9a('0x3f')](_0x24fd65));_0x34d447[_0x2c9a('0x49')]();}};};