Built motion from commit (unavailable).|2.5.16
[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 _0x34f1=['intersection','length','exists','stop','deleteJob','resolve','run\x20job','cron','active','isBetween','startAt','add','start','update','update\x20cron','run','util','moment','cron-job-manager','jayson/promise','bluebird','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','name','email','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractUnit','join','../../files/reports','savename','%s.%s','basename','existsSync','status','Sent','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','sendIfEmpty','SendMail','then','error','error\x20mail','stringify','email\x20sent','catch','data','subtractNumber','isNil','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','no\x20report\x20id','Schedule','findAll','MailServerOut','keys','jobs','map','toString','keyBy'];(function(_0x28f15c,_0x2414d0){var _0xb76943=function(_0x54da4a){while(--_0x54da4a){_0x28f15c['push'](_0x28f15c['shift']());}};_0xb76943(++_0x2414d0);}(_0x34f1,0x64));var _0x134f=function(_0x1de0f6,_0x55c722){_0x1de0f6=_0x1de0f6-0x0;var _0x5af23f=_0x34f1[_0x1de0f6];return _0x5af23f;};'use strict';var fs=require('fs');var util=require(_0x134f('0x0'));var path=require('path');var _=require('lodash');var moment=require(_0x134f('0x1'));var CronJobManager=require(_0x134f('0x2'));var jayson=require(_0x134f('0x3'));var BPromise=require(_0x134f('0x4'));var logger=require(_0x134f('0x5'))('schedule');var db=require(_0x134f('0x6'))['db'];var analyticCustomReportController=require(_0x134f('0x7'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x134f('0x8')][_0x134f('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x43604c,_0x24d660){return function(){logger[_0x134f('0xa')](_0x134f('0xb'),_0x43604c['email']);var _0x2581f4=!![];var _0xd5c61f={'tls':{'rejectUnauthorized':![]}};if(_0x43604c[_0x134f('0xc')][_0x134f('0xd')]['service']){_0xd5c61f['service']=_0x43604c[_0x134f('0xc')][_0x134f('0xd')][_0x134f('0xe')];}else{_0xd5c61f[_0x134f('0xf')]=_0x43604c[_0x134f('0xc')][_0x134f('0xd')][_0x134f('0xf')];_0xd5c61f[_0x134f('0x10')]=_0x43604c[_0x134f('0xc')][_0x134f('0xd')][_0x134f('0x10')];_0xd5c61f['secure']=_0x43604c[_0x134f('0xc')][_0x134f('0xd')][_0x134f('0x11')];}if(_0x43604c[_0x134f('0xc')]['Smtp'][_0x134f('0x12')]){_0xd5c61f[_0x134f('0x13')]={'user':_0x43604c['MailAccount'][_0x134f('0xd')][_0x134f('0x14')],'pass':_0x43604c['MailAccount']['Smtp'][_0x134f('0x15')]};}var _0x264f15={'account':_0xd5c61f,'message':{'from':util[_0x134f('0x16')](_0x134f('0x17'),_0x43604c[_0x134f('0xc')][_0x134f('0x18')],_0x43604c[_0x134f('0xc')][_0x134f('0x19')]||_0x43604c[_0x134f('0xc')][_0x134f('0xd')][_0x134f('0x14')]),'to':_0x43604c[_0x134f('0x19')],'cc':_0x43604c['cc'],'bcc':_0x43604c[_0x134f('0x1a')],'subject':util[_0x134f('0x16')](_0x134f('0x1b'),_0x24d660[_0x134f('0x18')],_0x43604c['subtractNumber'],_0x43604c[_0x134f('0x1c')])}};var _0x19e46e=path[_0x134f('0x1d')](__dirname,_0x134f('0x1e'));var _0x36986a=_0x24d660[_0x134f('0x1f')];var _0xde881d=util[_0x134f('0x16')](_0x134f('0x20'),path[_0x134f('0x21')](_0x24d660[_0x134f('0x1f')],path['extname'](_0x24d660[_0x134f('0x1f')])),'zip');var _0x535bea=path['join'](_0x19e46e,_0x36986a);var _0x5a8e8d=path[_0x134f('0x1d')](_0x19e46e,_0xde881d);if(fs[_0x134f('0x22')](_0x535bea)){_0x24d660[_0x134f('0x23')]=_0x134f('0x24');_0x264f15[_0x134f('0x25')][_0x134f('0x26')]=[{'filename':_0x36986a,'path':_0x535bea}];_0x264f15['message'][_0x134f('0x27')]=util['format'](_0x134f('0x28'),JSON['stringify'](_0x24d660,null,0x2));}else if(fs[_0x134f('0x22')](_0x5a8e8d)){_0x24d660['status']=_0x134f('0x24');_0x264f15[_0x134f('0x25')][_0x134f('0x26')]=[{'filename':_0xde881d,'path':_0x5a8e8d}];}else{_0x264f15[_0x134f('0x25')]['text']='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x43604c[_0x134f('0x29')]){_0x2581f4=![];logger[_0x134f('0xa')]('empty\x20file,\x20email\x20not\x20sent');}}if(_0x2581f4){return client['request'](_0x134f('0x2a'),_0x264f15)[_0x134f('0x2b')](function(_0x472ece){if(_0x472ece['error']){return logger[_0x134f('0x2c')](_0x134f('0x2d'),JSON[_0x134f('0x2e')](_0x472ece));}return logger[_0x134f('0xa')](_0x134f('0x2f'));})[_0x134f('0x30')](function(_0x1d1a0a){return logger[_0x134f('0x2c')](_0x134f('0x2d'),JSON[_0x134f('0x2e')](_0x1d1a0a));});}};}function handleError(){return function(_0x1956d4){return logger['error'](JSON['stringify'](_0x1956d4));};}function handleResult(_0x8e6c0f){return function(_0x3733df){logger[_0x134f('0xa')](_0x134f('0x31'),JSON[_0x134f('0x2e')](_0x3733df));if(_0x8e6c0f[_0x134f('0xc')]&&_0x8e6c0f[_0x134f('0xc')][_0x134f('0xd')]&&!_['isNil'](_0x8e6c0f['email'])){setTimeout(handleSendEmail(_0x8e6c0f,_0x3733df),0x3c*0x3e8);}};}function handleJob(_0x7037){return function(){try{if(_['isNil'](_0x7037[_0x134f('0x32')])){return logger['info']('subtractNumber\x20null\x20or\x20undefined');}if(_[_0x134f('0x33')](_0x7037[_0x134f('0x1c')])){return logger[_0x134f('0xa')]('subtractUnit\x20null\x20or\x20undefined');}var _0x98f50e={'startDate':moment()[_0x134f('0x34')](_0x7037[_0x134f('0x32')],_0x7037[_0x134f('0x1c')])[_0x134f('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0x134f('0x16')](_0x134f('0x35')),'type':_0x134f('0x36'),'output':_0x7037['output'],'name':_0x7037[_0x134f('0x18')]};if(!_['isNil'](_0x7037[_0x134f('0x37')])){logger[_0x134f('0xa')](_0x134f('0x38'),_0x7037[_0x134f('0x37')]);return analyticDefaultReportController[_0x134f('0x39')]({'id':_0x7037[_0x134f('0x37')]},_0x98f50e)['then'](handleResult(_0x7037))[_0x134f('0x30')](handleError());}if(!_[_0x134f('0x33')](_0x7037[_0x134f('0x3a')])){logger[_0x134f('0xa')]('exec\x20custom\x20report\x20id:%s',_0x7037[_0x134f('0x3a')]);return analyticCustomReportController[_0x134f('0x39')]({'id':_0x7037[_0x134f('0x3a')]},_0x98f50e)[_0x134f('0x2b')](handleResult(_0x7037))['catch'](handleError());}}catch(_0x2a10ae){logger[_0x134f('0x2c')](JSON['stringify'](_0x2a10ae));}return logger[_0x134f('0xa')](_0x134f('0x3b'));};}function getJobs(_0x8abe74){var _0x30068a={};if(_0x8abe74){_0x30068a['id']=_0x8abe74;}return db[_0x134f('0x3c')][_0x134f('0x3d')]({'where':_0x30068a,'include':[{'model':db[_0x134f('0xc')],'attributes':['id','name',_0x134f('0x19')],'include':[{'model':db[_0x134f('0x3e')],'as':_0x134f('0xd')}]}]})[_0x134f('0x2b')](function(_0x213de9){var _0x2adf9a=_[_0x134f('0x3f')](manager[_0x134f('0x40')]);var _0x295429=_[_0x134f('0x41')](_0x213de9,function(_0x185550){return _0x185550['id'][_0x134f('0x42')]();});var _0x32aac6=_[_0x134f('0x43')](_0x213de9,function(_0x1e3434){return _0x1e3434['id']['toString']();});var _0x25acdd=_0x8abe74?_0x295429:_['difference'](_0x295429,_0x2adf9a);var _0xc8cfd9=_[_0x134f('0x44')](_0x295429,_0x2adf9a);var _0x5e0375=_['difference'](_0x2adf9a,_0x295429);var _0x19ee81;var _0x4178b6;for(_0x19ee81=0x0;_0x19ee81<_0x5e0375[_0x134f('0x45')]&&!_0x8abe74;_0x19ee81+=0x1){_0x4178b6=_0x5e0375[_0x19ee81][_0x134f('0x42')]();if(manager[_0x134f('0x46')](_0x4178b6)){manager[_0x134f('0x47')](_0x4178b6);manager[_0x134f('0x48')](_0x4178b6);logger[_0x134f('0xa')]('delete\x20cron',_0x4178b6);}}logger[_0x134f('0xa')]('toRun',JSON[_0x134f('0x2e')](_0x25acdd));for(_0x19ee81=0x0;_0x19ee81<_0x25acdd['length'];_0x19ee81+=0x1){_0x4178b6=_0x25acdd[_0x19ee81][_0x134f('0x42')]();logger[_0x134f('0xa')]('index',_0x4178b6);if(_0x8abe74){logger['info']('my\x20id',_0x8abe74);logger[_0x134f('0xa')](JSON['stringify'](_0x32aac6[_0x4178b6]));BPromise[_0x134f('0x49')]()[_0x134f('0x2b')](handleJob(_0x32aac6[_0x4178b6]));logger[_0x134f('0xa')](_0x134f('0x4a'),_0x32aac6[_0x4178b6][_0x134f('0x18')],_0x32aac6[_0x4178b6][_0x134f('0x4b')]);}else if(_0x32aac6[_0x4178b6][_0x134f('0x4b')]&&_0x32aac6[_0x4178b6][_0x134f('0x4c')]&&moment()[_0x134f('0x4d')](_0x32aac6[_0x4178b6][_0x134f('0x4e')],_0x32aac6[_0x4178b6]['endAt'])){manager[_0x134f('0x4f')](_0x4178b6,_0x32aac6[_0x4178b6][_0x134f('0x4b')],handleJob(_0x32aac6[_0x4178b6]));manager[_0x134f('0x50')](_0x4178b6);logger['info']('add\x20cron',_0x32aac6[_0x4178b6]['name'],_0x32aac6[_0x4178b6][_0x134f('0x4b')]);}else if(manager[_0x134f('0x46')](_0x4178b6)){manager['stop'](_0x4178b6);manager[_0x134f('0x48')](_0x4178b6);logger[_0x134f('0xa')]('stop\x20cron',_0x32aac6[_0x4178b6][_0x134f('0x18')],_0x32aac6[_0x4178b6][_0x134f('0x4b')]);}}for(_0x19ee81=0x0,_0x4178b6;_0x19ee81<_0xc8cfd9[_0x134f('0x45')]&&!_0x8abe74;_0x19ee81+=0x1){_0x4178b6=_0xc8cfd9[_0x19ee81][_0x134f('0x42')]();if(manager[_0x134f('0x46')](_0x4178b6)){if(_0x32aac6[_0x4178b6][_0x134f('0x4b')]&&_0x32aac6[_0x4178b6]['active']&&moment()[_0x134f('0x4d')](_0x32aac6[_0x4178b6]['startAt'],_0x32aac6[_0x4178b6]['endAt'])){manager[_0x134f('0x51')](_0x4178b6,_0x32aac6[_0x4178b6][_0x134f('0x4b')],handleJob(_0x32aac6[_0x4178b6]));logger[_0x134f('0xa')](_0x134f('0x52'),_0x32aac6[_0x4178b6][_0x134f('0x18')],_0x32aac6[_0x4178b6][_0x134f('0x4b')]);}else{manager[_0x134f('0x47')](_0x4178b6);manager[_0x134f('0x48')](_0x4178b6);logger['info']('stop\x20cron',_0x32aac6[_0x4178b6][_0x134f('0x18')],_0x32aac6[_0x4178b6][_0x134f('0x4b')]);}}}})[_0x134f('0x30')](function(_0x1ec88e){logger['error'](JSON[_0x134f('0x2e')](_0x1ec88e));});}exports[_0x134f('0x53')]=function(_0x5c16c9){return getJobs(_0x5c16c9);};exports[_0x134f('0x50')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};