Built motion from commit (unavailable).|2.5.9
[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 _0xdff9=['cron','active','isBetween','startAt','endAt','add','start','add\x20cron','deleteJob','stop\x20cron','update','update\x20cron','run','util','path','lodash','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','service','MailAccount','host','Smtp','port','secure','authentication','auth','user','pass','format','email','Report\x20%s\x20last\x20%s\x20%s','name','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','status','Sent','message','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','text','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','then','error','error\x20mail','email\x20sent','data','isNil','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','exec\x20defaul\x20report\x20id:%s','DefaultReportId','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','runReport','Schedule','findAll','keys','jobs','toString','keyBy','difference','intersection','length','exists','stop','delete\x20cron','toRun','index','resolve','run\x20job'];(function(_0x17928f,_0x4ad33f){var _0x500b63=function(_0x127644){while(--_0x127644){_0x17928f['push'](_0x17928f['shift']());}};_0x500b63(++_0x4ad33f);}(_0xdff9,0x181));var _0x9dff=function(_0x596a1b,_0x53ce62){_0x596a1b=_0x596a1b-0x0;var _0x43b5fc=_0xdff9[_0x596a1b];return _0x43b5fc;};'use strict';var fs=require('fs');var util=require(_0x9dff('0x0'));var path=require(_0x9dff('0x1'));var _=require(_0x9dff('0x2'));var moment=require('moment');var CronJobManager=require('cron-job-manager');var jayson=require(_0x9dff('0x3'));var BPromise=require(_0x9dff('0x4'));var logger=require(_0x9dff('0x5'))(_0x9dff('0x6'));var db=require(_0x9dff('0x7'))['db'];var analyticCustomReportController=require(_0x9dff('0x8'));var analyticDefaultReportController=require(_0x9dff('0x9'));var client=jayson[_0x9dff('0xa')][_0x9dff('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x390272,_0x23cf33){return function(){logger[_0x9dff('0xc')](_0x9dff('0xd'),_0x390272['email']);var _0x28693b=!![];var _0x188205={'tls':{'rejectUnauthorized':![]}};if(_0x390272['MailAccount']['Smtp'][_0x9dff('0xe')]){_0x188205[_0x9dff('0xe')]=_0x390272[_0x9dff('0xf')]['Smtp'][_0x9dff('0xe')];}else{_0x188205[_0x9dff('0x10')]=_0x390272[_0x9dff('0xf')][_0x9dff('0x11')][_0x9dff('0x10')];_0x188205[_0x9dff('0x12')]=_0x390272['MailAccount'][_0x9dff('0x11')]['port'];_0x188205['secure']=_0x390272['MailAccount']['Smtp'][_0x9dff('0x13')];}if(_0x390272[_0x9dff('0xf')][_0x9dff('0x11')][_0x9dff('0x14')]){_0x188205[_0x9dff('0x15')]={'user':_0x390272[_0x9dff('0xf')][_0x9dff('0x11')][_0x9dff('0x16')],'pass':_0x390272[_0x9dff('0xf')]['Smtp'][_0x9dff('0x17')]};}var _0x41e5b5={'account':_0x188205,'message':{'from':util[_0x9dff('0x18')]('\x22%s\x22\x20<%s>',_0x390272[_0x9dff('0xf')]['name'],_0x390272[_0x9dff('0xf')][_0x9dff('0x19')]||_0x390272['MailAccount'][_0x9dff('0x11')][_0x9dff('0x16')]),'to':_0x390272[_0x9dff('0x19')],'cc':_0x390272['cc'],'bcc':_0x390272['bcc'],'subject':util[_0x9dff('0x18')](_0x9dff('0x1a'),_0x23cf33[_0x9dff('0x1b')],_0x390272[_0x9dff('0x1c')],_0x390272[_0x9dff('0x1d')])}};var _0x37b178=path[_0x9dff('0x1e')](__dirname,_0x9dff('0x1f'));var _0x16008e=_0x23cf33[_0x9dff('0x20')];var _0x38cb2e=util['format'](_0x9dff('0x21'),path[_0x9dff('0x22')](_0x23cf33['savename'],path[_0x9dff('0x23')](_0x23cf33[_0x9dff('0x20')])),_0x9dff('0x24'));var _0x5b9926=path['join'](_0x37b178,_0x16008e);var _0xa01296=path[_0x9dff('0x1e')](_0x37b178,_0x38cb2e);if(fs[_0x9dff('0x25')](_0x5b9926)){_0x23cf33[_0x9dff('0x26')]=_0x9dff('0x27');_0x41e5b5[_0x9dff('0x28')]['attachments']=[{'filename':_0x16008e,'path':_0x5b9926}];_0x41e5b5[_0x9dff('0x28')]['text']=util['format'](_0x9dff('0x29'),JSON[_0x9dff('0x2a')](_0x23cf33,null,0x2));}else if(fs[_0x9dff('0x25')](_0xa01296)){_0x23cf33[_0x9dff('0x26')]='Sent';_0x41e5b5[_0x9dff('0x28')]['attachments']=[{'filename':_0x38cb2e,'path':_0xa01296}];}else{_0x41e5b5[_0x9dff('0x28')][_0x9dff('0x2b')]=_0x9dff('0x2c');if(!_0x390272[_0x9dff('0x2d')]){_0x28693b=![];logger[_0x9dff('0xc')](_0x9dff('0x2e'));}}if(_0x28693b){return client[_0x9dff('0x2f')]('SendMail',_0x41e5b5)[_0x9dff('0x30')](function(_0xe22291){if(_0xe22291[_0x9dff('0x31')]){return logger[_0x9dff('0x31')](_0x9dff('0x32'),JSON['stringify'](_0xe22291));}return logger[_0x9dff('0xc')](_0x9dff('0x33'));})['catch'](function(_0x714ebf){return logger['error'](_0x9dff('0x32'),JSON[_0x9dff('0x2a')](_0x714ebf));});}};}function handleError(){return function(_0x1bc1a8){return logger[_0x9dff('0x31')](JSON[_0x9dff('0x2a')](_0x1bc1a8));};}function handleResult(_0x2fb1ed){return function(_0xa8f1c2){logger[_0x9dff('0xc')](_0x9dff('0x34'),JSON[_0x9dff('0x2a')](_0xa8f1c2));if(_0x2fb1ed[_0x9dff('0xf')]&&_0x2fb1ed['MailAccount']['Smtp']&&!_['isNil'](_0x2fb1ed[_0x9dff('0x19')])){setTimeout(handleSendEmail(_0x2fb1ed,_0xa8f1c2),0x3c*0x3e8);}};}function handleJob(_0x5f031d){return function(){try{if(_[_0x9dff('0x35')](_0x5f031d[_0x9dff('0x1c')])){return logger['info']('subtractNumber\x20null\x20or\x20undefined');}if(_[_0x9dff('0x35')](_0x5f031d['subtractUnit'])){return logger['info'](_0x9dff('0x36'));}var _0x3aa5db={'startDate':moment()[_0x9dff('0x37')](_0x5f031d['subtractNumber'],_0x5f031d[_0x9dff('0x1d')])[_0x9dff('0x18')](_0x9dff('0x38')),'endDate':moment()[_0x9dff('0x18')]('YYYY-MM-DD\x20HH:mm:ss'),'type':_0x9dff('0x39'),'output':_0x5f031d['output'],'name':_0x5f031d[_0x9dff('0x1b')]};if(!_['isNil'](_0x5f031d['DefaultReportId'])){logger[_0x9dff('0xc')](_0x9dff('0x3a'),_0x5f031d[_0x9dff('0x3b')]);return analyticDefaultReportController['runReport']({'id':_0x5f031d[_0x9dff('0x3b')]},_0x3aa5db)['then'](handleResult(_0x5f031d))[_0x9dff('0x3c')](handleError());}if(!_[_0x9dff('0x35')](_0x5f031d[_0x9dff('0x3d')])){logger[_0x9dff('0xc')](_0x9dff('0x3e'),_0x5f031d[_0x9dff('0x3d')]);return analyticCustomReportController[_0x9dff('0x3f')]({'id':_0x5f031d[_0x9dff('0x3d')]},_0x3aa5db)[_0x9dff('0x30')](handleResult(_0x5f031d))[_0x9dff('0x3c')](handleError());}}catch(_0x78ab4a){logger[_0x9dff('0x31')](JSON['stringify'](_0x78ab4a));}return logger['info']('no\x20report\x20id');};}function getJobs(_0x5264b4){var _0x4ff38d={};if(_0x5264b4){_0x4ff38d['id']=_0x5264b4;}return db[_0x9dff('0x40')][_0x9dff('0x41')]({'where':_0x4ff38d,'include':[{'model':db[_0x9dff('0xf')],'attributes':['id','name',_0x9dff('0x19')],'include':[{'model':db['MailServerOut'],'as':'Smtp'}]}]})[_0x9dff('0x30')](function(_0x3b6539){var _0x9af6e=_[_0x9dff('0x42')](manager[_0x9dff('0x43')]);var _0x48e24e=_['map'](_0x3b6539,function(_0x2936ba){return _0x2936ba['id'][_0x9dff('0x44')]();});var _0x58fe2b=_[_0x9dff('0x45')](_0x3b6539,function(_0x5a8974){return _0x5a8974['id'][_0x9dff('0x44')]();});var _0x51ee11=_0x5264b4?_0x48e24e:_[_0x9dff('0x46')](_0x48e24e,_0x9af6e);var _0x51bf7d=_[_0x9dff('0x47')](_0x48e24e,_0x9af6e);var _0x220e47=_['difference'](_0x9af6e,_0x48e24e);var _0x5cfd4a;var _0x3551ee;for(_0x5cfd4a=0x0;_0x5cfd4a<_0x220e47[_0x9dff('0x48')]&&!_0x5264b4;_0x5cfd4a+=0x1){_0x3551ee=_0x220e47[_0x5cfd4a][_0x9dff('0x44')]();if(manager[_0x9dff('0x49')](_0x3551ee)){manager[_0x9dff('0x4a')](_0x3551ee);manager['deleteJob'](_0x3551ee);logger[_0x9dff('0xc')](_0x9dff('0x4b'),_0x3551ee);}}logger[_0x9dff('0xc')](_0x9dff('0x4c'),JSON[_0x9dff('0x2a')](_0x51ee11));for(_0x5cfd4a=0x0;_0x5cfd4a<_0x51ee11[_0x9dff('0x48')];_0x5cfd4a+=0x1){_0x3551ee=_0x51ee11[_0x5cfd4a][_0x9dff('0x44')]();logger[_0x9dff('0xc')](_0x9dff('0x4d'),_0x3551ee);if(_0x5264b4){logger[_0x9dff('0xc')]('my\x20id',_0x5264b4);logger[_0x9dff('0xc')](JSON['stringify'](_0x58fe2b[_0x3551ee]));BPromise[_0x9dff('0x4e')]()[_0x9dff('0x30')](handleJob(_0x58fe2b[_0x3551ee]));logger[_0x9dff('0xc')](_0x9dff('0x4f'),_0x58fe2b[_0x3551ee][_0x9dff('0x1b')],_0x58fe2b[_0x3551ee]['cron']);}else if(_0x58fe2b[_0x3551ee][_0x9dff('0x50')]&&_0x58fe2b[_0x3551ee][_0x9dff('0x51')]&&moment()[_0x9dff('0x52')](_0x58fe2b[_0x3551ee][_0x9dff('0x53')],_0x58fe2b[_0x3551ee][_0x9dff('0x54')])){manager[_0x9dff('0x55')](_0x3551ee,_0x58fe2b[_0x3551ee][_0x9dff('0x50')],handleJob(_0x58fe2b[_0x3551ee]));manager[_0x9dff('0x56')](_0x3551ee);logger[_0x9dff('0xc')](_0x9dff('0x57'),_0x58fe2b[_0x3551ee][_0x9dff('0x1b')],_0x58fe2b[_0x3551ee]['cron']);}else if(manager['exists'](_0x3551ee)){manager[_0x9dff('0x4a')](_0x3551ee);manager[_0x9dff('0x58')](_0x3551ee);logger['info'](_0x9dff('0x59'),_0x58fe2b[_0x3551ee][_0x9dff('0x1b')],_0x58fe2b[_0x3551ee][_0x9dff('0x50')]);}}for(_0x5cfd4a=0x0,_0x3551ee;_0x5cfd4a<_0x51bf7d['length']&&!_0x5264b4;_0x5cfd4a+=0x1){_0x3551ee=_0x51bf7d[_0x5cfd4a][_0x9dff('0x44')]();if(manager[_0x9dff('0x49')](_0x3551ee)){if(_0x58fe2b[_0x3551ee][_0x9dff('0x50')]&&_0x58fe2b[_0x3551ee][_0x9dff('0x51')]&&moment()['isBetween'](_0x58fe2b[_0x3551ee][_0x9dff('0x53')],_0x58fe2b[_0x3551ee][_0x9dff('0x54')])){manager[_0x9dff('0x5a')](_0x3551ee,_0x58fe2b[_0x3551ee][_0x9dff('0x50')],handleJob(_0x58fe2b[_0x3551ee]));logger[_0x9dff('0xc')](_0x9dff('0x5b'),_0x58fe2b[_0x3551ee][_0x9dff('0x1b')],_0x58fe2b[_0x3551ee][_0x9dff('0x50')]);}else{manager['stop'](_0x3551ee);manager[_0x9dff('0x58')](_0x3551ee);logger['info']('stop\x20cron',_0x58fe2b[_0x3551ee][_0x9dff('0x1b')],_0x58fe2b[_0x3551ee]['cron']);}}}})['catch'](function(_0x11dbff){logger['error'](JSON[_0x9dff('0x2a')](_0x11dbff));});}exports[_0x9dff('0x5c')]=function(_0x438a53){return getJobs(_0x438a53);};exports[_0x9dff('0x56')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};