Built motion from commit (unavailable).|2.5.14
[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 _0x02fe=['subtractUnit','subtractUnit\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','then','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','runReport','findAll','MailServerOut','keys','jobs','map','keyBy','toString','difference','intersection','length','exists','stop','deleteJob','toRun','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','start','stop\x20cron','update','update\x20cron','run','util','path','lodash','moment','jayson/promise','bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','host','port','MailAccount','secure','authentication','auth','pass','\x22%s\x22\x20<%s>','name','format','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','status','Sent','attachments','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','request','error','error\x20mail','email\x20sent','data','isNil','subtractNumber\x20null\x20or\x20undefined'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x02fe,0x133));var _0xe02f=function(_0x402e26,_0xb5b676){_0x402e26=_0x402e26-0x0;var _0x16adf2=_0x02fe[_0x402e26];return _0x16adf2;};'use strict';var fs=require('fs');var util=require(_0xe02f('0x0'));var path=require(_0xe02f('0x1'));var _=require(_0xe02f('0x2'));var moment=require(_0xe02f('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require(_0xe02f('0x4'));var BPromise=require(_0xe02f('0x5'));var logger=require(_0xe02f('0x6'))(_0xe02f('0x7'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0xe02f('0x8'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0xe02f('0x9')][_0xe02f('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x5e665a,_0x36a620){return function(){logger[_0xe02f('0xb')](_0xe02f('0xc'),_0x5e665a[_0xe02f('0xd')]);var _0x593f91=!![];var _0x7110e7={'tls':{'rejectUnauthorized':![]}};if(_0x5e665a['MailAccount'][_0xe02f('0xe')]['service']){_0x7110e7['service']=_0x5e665a['MailAccount'][_0xe02f('0xe')]['service'];}else{_0x7110e7[_0xe02f('0xf')]=_0x5e665a['MailAccount'][_0xe02f('0xe')]['host'];_0x7110e7[_0xe02f('0x10')]=_0x5e665a[_0xe02f('0x11')][_0xe02f('0xe')][_0xe02f('0x10')];_0x7110e7['secure']=_0x5e665a[_0xe02f('0x11')][_0xe02f('0xe')][_0xe02f('0x12')];}if(_0x5e665a[_0xe02f('0x11')]['Smtp'][_0xe02f('0x13')]){_0x7110e7[_0xe02f('0x14')]={'user':_0x5e665a['MailAccount'][_0xe02f('0xe')]['user'],'pass':_0x5e665a['MailAccount']['Smtp'][_0xe02f('0x15')]};}var _0x2d4927={'account':_0x7110e7,'message':{'from':util['format'](_0xe02f('0x16'),_0x5e665a['MailAccount'][_0xe02f('0x17')],_0x5e665a[_0xe02f('0x11')][_0xe02f('0xd')]||_0x5e665a['MailAccount'][_0xe02f('0xe')]['user']),'to':_0x5e665a[_0xe02f('0xd')],'cc':_0x5e665a['cc'],'bcc':_0x5e665a['bcc'],'subject':util[_0xe02f('0x18')](_0xe02f('0x19'),_0x36a620[_0xe02f('0x17')],_0x5e665a[_0xe02f('0x1a')],_0x5e665a['subtractUnit'])}};var _0x69b509=path[_0xe02f('0x1b')](__dirname,_0xe02f('0x1c'));var _0x4b01b1=_0x36a620[_0xe02f('0x1d')];var _0x20c8bf=util[_0xe02f('0x18')](_0xe02f('0x1e'),path[_0xe02f('0x1f')](_0x36a620['savename'],path[_0xe02f('0x20')](_0x36a620[_0xe02f('0x1d')])),_0xe02f('0x21'));var _0x1d9a92=path[_0xe02f('0x1b')](_0x69b509,_0x4b01b1);var _0x3afa87=path[_0xe02f('0x1b')](_0x69b509,_0x20c8bf);if(fs[_0xe02f('0x22')](_0x1d9a92)){_0x36a620[_0xe02f('0x23')]=_0xe02f('0x24');_0x2d4927['message'][_0xe02f('0x25')]=[{'filename':_0x4b01b1,'path':_0x1d9a92}];_0x2d4927[_0xe02f('0x26')]['text']=util['format'](_0xe02f('0x27'),JSON[_0xe02f('0x28')](_0x36a620,null,0x2));}else if(fs['existsSync'](_0x3afa87)){_0x36a620[_0xe02f('0x23')]=_0xe02f('0x24');_0x2d4927[_0xe02f('0x26')][_0xe02f('0x25')]=[{'filename':_0x20c8bf,'path':_0x3afa87}];}else{_0x2d4927[_0xe02f('0x26')][_0xe02f('0x29')]='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x5e665a['sendIfEmpty']){_0x593f91=![];logger['info']('empty\x20file,\x20email\x20not\x20sent');}}if(_0x593f91){return client[_0xe02f('0x2a')]('SendMail',_0x2d4927)['then'](function(_0x4c2873){if(_0x4c2873[_0xe02f('0x2b')]){return logger[_0xe02f('0x2b')](_0xe02f('0x2c'),JSON[_0xe02f('0x28')](_0x4c2873));}return logger[_0xe02f('0xb')](_0xe02f('0x2d'));})['catch'](function(_0x2c9a40){return logger[_0xe02f('0x2b')](_0xe02f('0x2c'),JSON[_0xe02f('0x28')](_0x2c9a40));});}};}function handleError(){return function(_0x399f34){return logger[_0xe02f('0x2b')](JSON[_0xe02f('0x28')](_0x399f34));};}function handleResult(_0xd3c3c8){return function(_0x4e229a){logger['info'](_0xe02f('0x2e'),JSON[_0xe02f('0x28')](_0x4e229a));if(_0xd3c3c8['MailAccount']&&_0xd3c3c8['MailAccount']['Smtp']&&!_[_0xe02f('0x2f')](_0xd3c3c8[_0xe02f('0xd')])){setTimeout(handleSendEmail(_0xd3c3c8,_0x4e229a),0x3c*0x3e8);}};}function handleJob(_0x305240){return function(){try{if(_[_0xe02f('0x2f')](_0x305240[_0xe02f('0x1a')])){return logger[_0xe02f('0xb')](_0xe02f('0x30'));}if(_['isNil'](_0x305240[_0xe02f('0x31')])){return logger[_0xe02f('0xb')](_0xe02f('0x32'));}var _0x3dc2f1={'startDate':moment()['subtract'](_0x305240[_0xe02f('0x1a')],_0x305240['subtractUnit'])[_0xe02f('0x18')](_0xe02f('0x33')),'endDate':moment()[_0xe02f('0x18')](_0xe02f('0x33')),'type':_0xe02f('0x34'),'output':_0x305240[_0xe02f('0x35')],'name':_0x305240[_0xe02f('0x17')]};if(!_[_0xe02f('0x2f')](_0x305240[_0xe02f('0x36')])){logger[_0xe02f('0xb')](_0xe02f('0x37'),_0x305240[_0xe02f('0x36')]);return analyticDefaultReportController['runReport']({'id':_0x305240[_0xe02f('0x36')]},_0x3dc2f1)[_0xe02f('0x38')](handleResult(_0x305240))[_0xe02f('0x39')](handleError());}if(!_[_0xe02f('0x2f')](_0x305240[_0xe02f('0x3a')])){logger[_0xe02f('0xb')](_0xe02f('0x3b'),_0x305240[_0xe02f('0x3a')]);return analyticCustomReportController[_0xe02f('0x3c')]({'id':_0x305240[_0xe02f('0x3a')]},_0x3dc2f1)[_0xe02f('0x38')](handleResult(_0x305240))[_0xe02f('0x39')](handleError());}}catch(_0xdbda7c){logger[_0xe02f('0x2b')](JSON[_0xe02f('0x28')](_0xdbda7c));}return logger[_0xe02f('0xb')]('no\x20report\x20id');};}function getJobs(_0x57a3b8){var _0x236ed2={};if(_0x57a3b8){_0x236ed2['id']=_0x57a3b8;}return db['Schedule'][_0xe02f('0x3d')]({'where':_0x236ed2,'include':[{'model':db[_0xe02f('0x11')],'attributes':['id',_0xe02f('0x17'),_0xe02f('0xd')],'include':[{'model':db[_0xe02f('0x3e')],'as':'Smtp'}]}]})[_0xe02f('0x38')](function(_0xf39a03){var _0x49d861=_[_0xe02f('0x3f')](manager[_0xe02f('0x40')]);var _0x40539f=_[_0xe02f('0x41')](_0xf39a03,function(_0x514a06){return _0x514a06['id']['toString']();});var _0x33a87d=_[_0xe02f('0x42')](_0xf39a03,function(_0x3d7437){return _0x3d7437['id'][_0xe02f('0x43')]();});var _0x2218da=_0x57a3b8?_0x40539f:_[_0xe02f('0x44')](_0x40539f,_0x49d861);var _0x42305a=_[_0xe02f('0x45')](_0x40539f,_0x49d861);var _0x277fcd=_[_0xe02f('0x44')](_0x49d861,_0x40539f);var _0x438b24;var _0x31c2cb;for(_0x438b24=0x0;_0x438b24<_0x277fcd[_0xe02f('0x46')]&&!_0x57a3b8;_0x438b24+=0x1){_0x31c2cb=_0x277fcd[_0x438b24][_0xe02f('0x43')]();if(manager[_0xe02f('0x47')](_0x31c2cb)){manager[_0xe02f('0x48')](_0x31c2cb);manager[_0xe02f('0x49')](_0x31c2cb);logger[_0xe02f('0xb')]('delete\x20cron',_0x31c2cb);}}logger[_0xe02f('0xb')](_0xe02f('0x4a'),JSON['stringify'](_0x2218da));for(_0x438b24=0x0;_0x438b24<_0x2218da[_0xe02f('0x46')];_0x438b24+=0x1){_0x31c2cb=_0x2218da[_0x438b24][_0xe02f('0x43')]();logger[_0xe02f('0xb')](_0xe02f('0x4b'),_0x31c2cb);if(_0x57a3b8){logger[_0xe02f('0xb')](_0xe02f('0x4c'),_0x57a3b8);logger[_0xe02f('0xb')](JSON['stringify'](_0x33a87d[_0x31c2cb]));BPromise[_0xe02f('0x4d')]()['then'](handleJob(_0x33a87d[_0x31c2cb]));logger[_0xe02f('0xb')](_0xe02f('0x4e'),_0x33a87d[_0x31c2cb][_0xe02f('0x17')],_0x33a87d[_0x31c2cb]['cron']);}else if(_0x33a87d[_0x31c2cb][_0xe02f('0x4f')]&&_0x33a87d[_0x31c2cb][_0xe02f('0x50')]&&moment()[_0xe02f('0x51')](_0x33a87d[_0x31c2cb][_0xe02f('0x52')],_0x33a87d[_0x31c2cb][_0xe02f('0x53')])){manager['add'](_0x31c2cb,_0x33a87d[_0x31c2cb]['cron'],handleJob(_0x33a87d[_0x31c2cb]));manager[_0xe02f('0x54')](_0x31c2cb);logger[_0xe02f('0xb')]('add\x20cron',_0x33a87d[_0x31c2cb][_0xe02f('0x17')],_0x33a87d[_0x31c2cb]['cron']);}else if(manager['exists'](_0x31c2cb)){manager['stop'](_0x31c2cb);manager[_0xe02f('0x49')](_0x31c2cb);logger['info'](_0xe02f('0x55'),_0x33a87d[_0x31c2cb]['name'],_0x33a87d[_0x31c2cb][_0xe02f('0x4f')]);}}for(_0x438b24=0x0,_0x31c2cb;_0x438b24<_0x42305a[_0xe02f('0x46')]&&!_0x57a3b8;_0x438b24+=0x1){_0x31c2cb=_0x42305a[_0x438b24][_0xe02f('0x43')]();if(manager[_0xe02f('0x47')](_0x31c2cb)){if(_0x33a87d[_0x31c2cb]['cron']&&_0x33a87d[_0x31c2cb][_0xe02f('0x50')]&&moment()[_0xe02f('0x51')](_0x33a87d[_0x31c2cb][_0xe02f('0x52')],_0x33a87d[_0x31c2cb]['endAt'])){manager[_0xe02f('0x56')](_0x31c2cb,_0x33a87d[_0x31c2cb][_0xe02f('0x4f')],handleJob(_0x33a87d[_0x31c2cb]));logger[_0xe02f('0xb')](_0xe02f('0x57'),_0x33a87d[_0x31c2cb][_0xe02f('0x17')],_0x33a87d[_0x31c2cb][_0xe02f('0x4f')]);}else{manager[_0xe02f('0x48')](_0x31c2cb);manager[_0xe02f('0x49')](_0x31c2cb);logger[_0xe02f('0xb')](_0xe02f('0x55'),_0x33a87d[_0x31c2cb]['name'],_0x33a87d[_0x31c2cb][_0xe02f('0x4f')]);}}}})[_0xe02f('0x39')](function(_0x152e03){logger['error'](JSON[_0xe02f('0x28')](_0x152e03));});}exports[_0xe02f('0x58')]=function(_0x2210fa){return getJobs(_0x2210fa);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};