Built motion from commit (unavailable).|2.5.13
[motion2.git] / server / config / schedule / index.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 _0x9abd=['email','Smtp','service','MailAccount','host','port','secure','authentication','auth','user','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','join','savename','%s.%s','basename','Sent','message','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','existsSync','status','attachments','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','SendMail','error','error\x20mail','catch','data','subtractNumber\x20null\x20or\x20undefined','isNil','subtractUnit','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','then','CustomReportId','runReport','findAll','MailServerOut','keys','jobs','map','difference','intersection','length','toString','exists','deleteJob','toRun','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','add\x20cron','stop','update','update\x20cron','run','start','util','lodash','moment','cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','info'];(function(_0x25389a,_0x2dc509){var _0x54ca5a=function(_0x31bb2){while(--_0x31bb2){_0x25389a['push'](_0x25389a['shift']());}};_0x54ca5a(++_0x2dc509);}(_0x9abd,0xfc));var _0xd9ab=function(_0x119597,_0x17a31a){_0x119597=_0x119597-0x0;var _0x4dc1f0=_0x9abd[_0x119597];return _0x4dc1f0;};'use strict';var fs=require('fs');var util=require(_0xd9ab('0x0'));var path=require('path');var _=require(_0xd9ab('0x1'));var moment=require(_0xd9ab('0x2'));var CronJobManager=require(_0xd9ab('0x3'));var jayson=require(_0xd9ab('0x4'));var BPromise=require(_0xd9ab('0x5'));var logger=require(_0xd9ab('0x6'))(_0xd9ab('0x7'));var db=require(_0xd9ab('0x8'))['db'];var analyticCustomReportController=require(_0xd9ab('0x9'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0xd9ab('0xa')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x1d0242,_0x5d4c7e){return function(){logger[_0xd9ab('0xb')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x1d0242[_0xd9ab('0xc')]);var _0x4aac37=!![];var _0x2abb58={'tls':{'rejectUnauthorized':![]}};if(_0x1d0242['MailAccount'][_0xd9ab('0xd')][_0xd9ab('0xe')]){_0x2abb58[_0xd9ab('0xe')]=_0x1d0242[_0xd9ab('0xf')][_0xd9ab('0xd')]['service'];}else{_0x2abb58[_0xd9ab('0x10')]=_0x1d0242[_0xd9ab('0xf')]['Smtp'][_0xd9ab('0x10')];_0x2abb58[_0xd9ab('0x11')]=_0x1d0242['MailAccount'][_0xd9ab('0xd')]['port'];_0x2abb58[_0xd9ab('0x12')]=_0x1d0242[_0xd9ab('0xf')][_0xd9ab('0xd')][_0xd9ab('0x12')];}if(_0x1d0242[_0xd9ab('0xf')]['Smtp'][_0xd9ab('0x13')]){_0x2abb58[_0xd9ab('0x14')]={'user':_0x1d0242[_0xd9ab('0xf')][_0xd9ab('0xd')][_0xd9ab('0x15')],'pass':_0x1d0242[_0xd9ab('0xf')][_0xd9ab('0xd')]['pass']};}var _0x422163={'account':_0x2abb58,'message':{'from':util[_0xd9ab('0x16')](_0xd9ab('0x17'),_0x1d0242[_0xd9ab('0xf')][_0xd9ab('0x18')],_0x1d0242[_0xd9ab('0xf')]['email']||_0x1d0242[_0xd9ab('0xf')][_0xd9ab('0xd')][_0xd9ab('0x15')]),'to':_0x1d0242[_0xd9ab('0xc')],'cc':_0x1d0242['cc'],'bcc':_0x1d0242[_0xd9ab('0x19')],'subject':util[_0xd9ab('0x16')](_0xd9ab('0x1a'),_0x5d4c7e['name'],_0x1d0242[_0xd9ab('0x1b')],_0x1d0242['subtractUnit'])}};var _0x3374ed=path[_0xd9ab('0x1c')](__dirname,'../../files/reports');var _0x5dac1c=_0x5d4c7e[_0xd9ab('0x1d')];var _0x2862fa=util[_0xd9ab('0x16')](_0xd9ab('0x1e'),path[_0xd9ab('0x1f')](_0x5d4c7e['savename'],path['extname'](_0x5d4c7e[_0xd9ab('0x1d')])),'zip');var _0x17ded0=path[_0xd9ab('0x1c')](_0x3374ed,_0x5dac1c);var _0x1bfe37=path[_0xd9ab('0x1c')](_0x3374ed,_0x2862fa);if(fs['existsSync'](_0x17ded0)){_0x5d4c7e['status']=_0xd9ab('0x20');_0x422163[_0xd9ab('0x21')]['attachments']=[{'filename':_0x5dac1c,'path':_0x17ded0}];_0x422163[_0xd9ab('0x21')][_0xd9ab('0x22')]=util[_0xd9ab('0x16')](_0xd9ab('0x23'),JSON[_0xd9ab('0x24')](_0x5d4c7e,null,0x2));}else if(fs[_0xd9ab('0x25')](_0x1bfe37)){_0x5d4c7e[_0xd9ab('0x26')]=_0xd9ab('0x20');_0x422163['message'][_0xd9ab('0x27')]=[{'filename':_0x2862fa,'path':_0x1bfe37}];}else{_0x422163[_0xd9ab('0x21')][_0xd9ab('0x22')]=_0xd9ab('0x28');if(!_0x1d0242[_0xd9ab('0x29')]){_0x4aac37=![];logger[_0xd9ab('0xb')](_0xd9ab('0x2a'));}}if(_0x4aac37){return client[_0xd9ab('0x2b')](_0xd9ab('0x2c'),_0x422163)['then'](function(_0x508a1f){if(_0x508a1f['error']){return logger[_0xd9ab('0x2d')](_0xd9ab('0x2e'),JSON[_0xd9ab('0x24')](_0x508a1f));}return logger[_0xd9ab('0xb')]('email\x20sent');})[_0xd9ab('0x2f')](function(_0x58bbbc){return logger[_0xd9ab('0x2d')](_0xd9ab('0x2e'),JSON[_0xd9ab('0x24')](_0x58bbbc));});}};}function handleError(){return function(_0x391b29){return logger[_0xd9ab('0x2d')](JSON['stringify'](_0x391b29));};}function handleResult(_0x506c6d){return function(_0x48e623){logger[_0xd9ab('0xb')](_0xd9ab('0x30'),JSON[_0xd9ab('0x24')](_0x48e623));if(_0x506c6d[_0xd9ab('0xf')]&&_0x506c6d[_0xd9ab('0xf')]['Smtp']&&!_['isNil'](_0x506c6d[_0xd9ab('0xc')])){setTimeout(handleSendEmail(_0x506c6d,_0x48e623),0x3c*0x3e8);}};}function handleJob(_0x456d2b){return function(){try{if(_['isNil'](_0x456d2b[_0xd9ab('0x1b')])){return logger[_0xd9ab('0xb')](_0xd9ab('0x31'));}if(_[_0xd9ab('0x32')](_0x456d2b[_0xd9ab('0x33')])){return logger[_0xd9ab('0xb')](_0xd9ab('0x34'));}var _0x295106={'startDate':moment()[_0xd9ab('0x35')](_0x456d2b['subtractNumber'],_0x456d2b[_0xd9ab('0x33')])[_0xd9ab('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()['format'](_0xd9ab('0x36')),'type':_0xd9ab('0x37'),'output':_0x456d2b[_0xd9ab('0x38')],'name':_0x456d2b[_0xd9ab('0x18')]};if(!_[_0xd9ab('0x32')](_0x456d2b[_0xd9ab('0x39')])){logger[_0xd9ab('0xb')](_0xd9ab('0x3a'),_0x456d2b[_0xd9ab('0x39')]);return analyticDefaultReportController['runReport']({'id':_0x456d2b[_0xd9ab('0x39')]},_0x295106)[_0xd9ab('0x3b')](handleResult(_0x456d2b))[_0xd9ab('0x2f')](handleError());}if(!_[_0xd9ab('0x32')](_0x456d2b['CustomReportId'])){logger[_0xd9ab('0xb')]('exec\x20custom\x20report\x20id:%s',_0x456d2b[_0xd9ab('0x3c')]);return analyticCustomReportController[_0xd9ab('0x3d')]({'id':_0x456d2b[_0xd9ab('0x3c')]},_0x295106)['then'](handleResult(_0x456d2b))[_0xd9ab('0x2f')](handleError());}}catch(_0x51df73){logger[_0xd9ab('0x2d')](JSON['stringify'](_0x51df73));}return logger[_0xd9ab('0xb')]('no\x20report\x20id');};}function getJobs(_0x3e75f4){var _0xc5e68f={};if(_0x3e75f4){_0xc5e68f['id']=_0x3e75f4;}return db['Schedule'][_0xd9ab('0x3e')]({'where':_0xc5e68f,'include':[{'model':db['MailAccount'],'attributes':['id','name','email'],'include':[{'model':db[_0xd9ab('0x3f')],'as':'Smtp'}]}]})['then'](function(_0x2edf48){var _0x502c05=_[_0xd9ab('0x40')](manager[_0xd9ab('0x41')]);var _0x2cb130=_[_0xd9ab('0x42')](_0x2edf48,function(_0x37f02){return _0x37f02['id']['toString']();});var _0x5a95ac=_['keyBy'](_0x2edf48,function(_0x3712f9){return _0x3712f9['id']['toString']();});var _0x391d29=_0x3e75f4?_0x2cb130:_[_0xd9ab('0x43')](_0x2cb130,_0x502c05);var _0x1cec2f=_[_0xd9ab('0x44')](_0x2cb130,_0x502c05);var _0x45ea43=_['difference'](_0x502c05,_0x2cb130);var _0x1db041;var _0x25c33d;for(_0x1db041=0x0;_0x1db041<_0x45ea43[_0xd9ab('0x45')]&&!_0x3e75f4;_0x1db041+=0x1){_0x25c33d=_0x45ea43[_0x1db041][_0xd9ab('0x46')]();if(manager[_0xd9ab('0x47')](_0x25c33d)){manager['stop'](_0x25c33d);manager[_0xd9ab('0x48')](_0x25c33d);logger['info']('delete\x20cron',_0x25c33d);}}logger['info'](_0xd9ab('0x49'),JSON[_0xd9ab('0x24')](_0x391d29));for(_0x1db041=0x0;_0x1db041<_0x391d29[_0xd9ab('0x45')];_0x1db041+=0x1){_0x25c33d=_0x391d29[_0x1db041][_0xd9ab('0x46')]();logger[_0xd9ab('0xb')](_0xd9ab('0x4a'),_0x25c33d);if(_0x3e75f4){logger[_0xd9ab('0xb')](_0xd9ab('0x4b'),_0x3e75f4);logger['info'](JSON[_0xd9ab('0x24')](_0x5a95ac[_0x25c33d]));BPromise[_0xd9ab('0x4c')]()[_0xd9ab('0x3b')](handleJob(_0x5a95ac[_0x25c33d]));logger['info'](_0xd9ab('0x4d'),_0x5a95ac[_0x25c33d]['name'],_0x5a95ac[_0x25c33d]['cron']);}else if(_0x5a95ac[_0x25c33d][_0xd9ab('0x4e')]&&_0x5a95ac[_0x25c33d][_0xd9ab('0x4f')]&&moment()[_0xd9ab('0x50')](_0x5a95ac[_0x25c33d][_0xd9ab('0x51')],_0x5a95ac[_0x25c33d]['endAt'])){manager['add'](_0x25c33d,_0x5a95ac[_0x25c33d]['cron'],handleJob(_0x5a95ac[_0x25c33d]));manager['start'](_0x25c33d);logger[_0xd9ab('0xb')](_0xd9ab('0x52'),_0x5a95ac[_0x25c33d]['name'],_0x5a95ac[_0x25c33d][_0xd9ab('0x4e')]);}else if(manager[_0xd9ab('0x47')](_0x25c33d)){manager[_0xd9ab('0x53')](_0x25c33d);manager[_0xd9ab('0x48')](_0x25c33d);logger[_0xd9ab('0xb')]('stop\x20cron',_0x5a95ac[_0x25c33d]['name'],_0x5a95ac[_0x25c33d][_0xd9ab('0x4e')]);}}for(_0x1db041=0x0,_0x25c33d;_0x1db041<_0x1cec2f[_0xd9ab('0x45')]&&!_0x3e75f4;_0x1db041+=0x1){_0x25c33d=_0x1cec2f[_0x1db041]['toString']();if(manager[_0xd9ab('0x47')](_0x25c33d)){if(_0x5a95ac[_0x25c33d][_0xd9ab('0x4e')]&&_0x5a95ac[_0x25c33d][_0xd9ab('0x4f')]&&moment()['isBetween'](_0x5a95ac[_0x25c33d]['startAt'],_0x5a95ac[_0x25c33d]['endAt'])){manager[_0xd9ab('0x54')](_0x25c33d,_0x5a95ac[_0x25c33d][_0xd9ab('0x4e')],handleJob(_0x5a95ac[_0x25c33d]));logger[_0xd9ab('0xb')](_0xd9ab('0x55'),_0x5a95ac[_0x25c33d]['name'],_0x5a95ac[_0x25c33d][_0xd9ab('0x4e')]);}else{manager[_0xd9ab('0x53')](_0x25c33d);manager[_0xd9ab('0x48')](_0x25c33d);logger[_0xd9ab('0xb')]('stop\x20cron',_0x5a95ac[_0x25c33d][_0xd9ab('0x18')],_0x5a95ac[_0x25c33d][_0xd9ab('0x4e')]);}}}})[_0xd9ab('0x2f')](function(_0x146234){logger[_0xd9ab('0x2d')](JSON['stringify'](_0x146234));});}exports[_0xd9ab('0x56')]=function(_0x3a03e4){return getJobs(_0x3a03e4);};exports[_0xd9ab('0x57')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};