Built motion from commit (unavailable).|2.4.20
[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 _0x3f52=['catch','CustomReportId','Schedule','MailServerOut','keys','map','toString','keyBy','difference','intersection','stop','deleteJob','delete\x20cron','toRun','length','index','my\x20id','resolve','cron','isBetween','startAt','endAt','add','start','exists','stop\x20cron','active','update','update\x20cron','util','path','lodash','cron-job-manager','jayson/promise','bluebird','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','MailAccount','Smtp','service','host','port','secure','authentication','user','pass','name','email','bcc','format','Report\x20%s\x20last\x20%s\x20%s','join','../../files/reports','extname','savename','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','existsSync','status','Sent','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','SendMail','then','error','error\x20mail','stringify','email\x20sent','isNil','subtractNumber','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x3f52,0xc7));var _0x23f5=function(_0x43d16c,_0x2b5447){_0x43d16c=_0x43d16c-0x0;var _0x208cce=_0x3f52[_0x43d16c];return _0x208cce;};'use strict';var fs=require('fs');var util=require(_0x23f5('0x0'));var path=require(_0x23f5('0x1'));var _=require(_0x23f5('0x2'));var moment=require('moment');var CronJobManager=require(_0x23f5('0x3'));var jayson=require(_0x23f5('0x4'));var BPromise=require(_0x23f5('0x5'));var logger=require('../logger')(_0x23f5('0x6'));var db=require(_0x23f5('0x7'))['db'];var analyticCustomReportController=require(_0x23f5('0x8'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x23f5('0x9')][_0x23f5('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0xe9ff4b,_0x431ac4){return function(){logger[_0x23f5('0xb')](_0x23f5('0xc'),_0xe9ff4b['email']);var _0x45f0bd=!![];var _0x2fc5a1={'tls':{'rejectUnauthorized':![]}};if(_0xe9ff4b[_0x23f5('0xd')][_0x23f5('0xe')][_0x23f5('0xf')]){_0x2fc5a1[_0x23f5('0xf')]=_0xe9ff4b[_0x23f5('0xd')][_0x23f5('0xe')]['service'];}else{_0x2fc5a1[_0x23f5('0x10')]=_0xe9ff4b[_0x23f5('0xd')][_0x23f5('0xe')][_0x23f5('0x10')];_0x2fc5a1[_0x23f5('0x11')]=_0xe9ff4b['MailAccount'][_0x23f5('0xe')][_0x23f5('0x11')];_0x2fc5a1[_0x23f5('0x12')]=_0xe9ff4b[_0x23f5('0xd')][_0x23f5('0xe')]['secure'];}if(_0xe9ff4b[_0x23f5('0xd')][_0x23f5('0xe')][_0x23f5('0x13')]){_0x2fc5a1['auth']={'user':_0xe9ff4b[_0x23f5('0xd')][_0x23f5('0xe')][_0x23f5('0x14')],'pass':_0xe9ff4b[_0x23f5('0xd')]['Smtp'][_0x23f5('0x15')]};}var _0x4be6e0={'account':_0x2fc5a1,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0xe9ff4b['MailAccount'][_0x23f5('0x16')],_0xe9ff4b[_0x23f5('0xd')][_0x23f5('0x17')]||_0xe9ff4b[_0x23f5('0xd')]['Smtp']['user']),'to':_0xe9ff4b[_0x23f5('0x17')],'cc':_0xe9ff4b['cc'],'bcc':_0xe9ff4b[_0x23f5('0x18')],'subject':util[_0x23f5('0x19')](_0x23f5('0x1a'),_0x431ac4['name'],_0xe9ff4b['subtractNumber'],_0xe9ff4b['subtractUnit'])}};var _0x4f6d89=path[_0x23f5('0x1b')](__dirname,_0x23f5('0x1c'));var _0xa619ad=_0x431ac4['savename'];var _0x296554=util[_0x23f5('0x19')]('%s.%s',path['basename'](_0x431ac4['savename'],path[_0x23f5('0x1d')](_0x431ac4[_0x23f5('0x1e')])),'zip');var _0x2d0460=path[_0x23f5('0x1b')](_0x4f6d89,_0xa619ad);var _0x511ef0=path[_0x23f5('0x1b')](_0x4f6d89,_0x296554);if(fs['existsSync'](_0x2d0460)){_0x431ac4['status']='Sent';_0x4be6e0[_0x23f5('0x1f')][_0x23f5('0x20')]=[{'filename':_0xa619ad,'path':_0x2d0460}];_0x4be6e0[_0x23f5('0x1f')][_0x23f5('0x21')]=util[_0x23f5('0x19')](_0x23f5('0x22'),JSON['stringify'](_0x431ac4,null,0x2));}else if(fs[_0x23f5('0x23')](_0x511ef0)){_0x431ac4[_0x23f5('0x24')]=_0x23f5('0x25');_0x4be6e0[_0x23f5('0x1f')]['attachments']=[{'filename':_0x296554,'path':_0x511ef0}];}else{_0x4be6e0[_0x23f5('0x1f')][_0x23f5('0x21')]=_0x23f5('0x26');if(!_0xe9ff4b[_0x23f5('0x27')]){_0x45f0bd=![];logger[_0x23f5('0xb')](_0x23f5('0x28'));}}if(_0x45f0bd){return client['request'](_0x23f5('0x29'),_0x4be6e0)[_0x23f5('0x2a')](function(_0x435f92){if(_0x435f92[_0x23f5('0x2b')]){return logger[_0x23f5('0x2b')](_0x23f5('0x2c'),JSON[_0x23f5('0x2d')](_0x435f92));}return logger['info'](_0x23f5('0x2e'));})['catch'](function(_0x3e61ce){return logger[_0x23f5('0x2b')](_0x23f5('0x2c'),JSON[_0x23f5('0x2d')](_0x3e61ce));});}};}function handleError(){return function(_0x18bbb7){return logger[_0x23f5('0x2b')](JSON[_0x23f5('0x2d')](_0x18bbb7));};}function handleResult(_0xfa50cd){return function(_0x71a191){logger[_0x23f5('0xb')]('data',JSON['stringify'](_0x71a191));if(_0xfa50cd[_0x23f5('0xd')]&&_0xfa50cd[_0x23f5('0xd')]['Smtp']&&!_[_0x23f5('0x2f')](_0xfa50cd[_0x23f5('0x17')])){setTimeout(handleSendEmail(_0xfa50cd,_0x71a191),0x3c*0x3e8);}};}function handleJob(_0x185e6d){return function(){try{if(_[_0x23f5('0x2f')](_0x185e6d[_0x23f5('0x30')])){return logger['info'](_0x23f5('0x31'));}if(_[_0x23f5('0x2f')](_0x185e6d['subtractUnit'])){return logger[_0x23f5('0xb')](_0x23f5('0x32'));}var _0xc461fe={'startDate':moment()[_0x23f5('0x33')](_0x185e6d[_0x23f5('0x30')],_0x185e6d['subtractUnit'])[_0x23f5('0x19')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0x23f5('0x19')](_0x23f5('0x34')),'type':_0x23f5('0x35'),'output':_0x185e6d['output'],'name':_0x185e6d[_0x23f5('0x16')]};if(!_[_0x23f5('0x2f')](_0x185e6d[_0x23f5('0x36')])){logger[_0x23f5('0xb')](_0x23f5('0x37'),_0x185e6d[_0x23f5('0x36')]);return analyticDefaultReportController['runReport']({'id':_0x185e6d[_0x23f5('0x36')]},_0xc461fe)[_0x23f5('0x2a')](handleResult(_0x185e6d))[_0x23f5('0x38')](handleError());}if(!_[_0x23f5('0x2f')](_0x185e6d[_0x23f5('0x39')])){logger[_0x23f5('0xb')]('exec\x20custom\x20report\x20id:%s',_0x185e6d[_0x23f5('0x39')]);return analyticCustomReportController['runReport']({'id':_0x185e6d[_0x23f5('0x39')]},_0xc461fe)[_0x23f5('0x2a')](handleResult(_0x185e6d))[_0x23f5('0x38')](handleError());}}catch(_0x56dfa1){logger[_0x23f5('0x2b')](JSON[_0x23f5('0x2d')](_0x56dfa1));}return logger['info']('no\x20report\x20id');};}function getJobs(_0x46547a){var _0x1aaec4={};if(_0x46547a){_0x1aaec4['id']=_0x46547a;}return db[_0x23f5('0x3a')]['findAll']({'where':_0x1aaec4,'include':[{'model':db[_0x23f5('0xd')],'attributes':['id',_0x23f5('0x16'),_0x23f5('0x17')],'include':[{'model':db[_0x23f5('0x3b')],'as':_0x23f5('0xe')}]}]})[_0x23f5('0x2a')](function(_0x41fbe0){var _0x3b29df=_[_0x23f5('0x3c')](manager['jobs']);var _0x4517b6=_[_0x23f5('0x3d')](_0x41fbe0,function(_0x2a319d){return _0x2a319d['id'][_0x23f5('0x3e')]();});var _0x1b7ac5=_[_0x23f5('0x3f')](_0x41fbe0,function(_0x2c9cf4){return _0x2c9cf4['id'][_0x23f5('0x3e')]();});var _0x544a81=_0x46547a?_0x4517b6:_[_0x23f5('0x40')](_0x4517b6,_0x3b29df);var _0x253ded=_[_0x23f5('0x41')](_0x4517b6,_0x3b29df);var _0x2c10b0=_['difference'](_0x3b29df,_0x4517b6);var _0x4d1d3b;var _0x50c4ea;for(_0x4d1d3b=0x0;_0x4d1d3b<_0x2c10b0['length']&&!_0x46547a;_0x4d1d3b+=0x1){_0x50c4ea=_0x2c10b0[_0x4d1d3b][_0x23f5('0x3e')]();if(manager['exists'](_0x50c4ea)){manager[_0x23f5('0x42')](_0x50c4ea);manager[_0x23f5('0x43')](_0x50c4ea);logger[_0x23f5('0xb')](_0x23f5('0x44'),_0x50c4ea);}}logger[_0x23f5('0xb')](_0x23f5('0x45'),JSON['stringify'](_0x544a81));for(_0x4d1d3b=0x0;_0x4d1d3b<_0x544a81[_0x23f5('0x46')];_0x4d1d3b+=0x1){_0x50c4ea=_0x544a81[_0x4d1d3b][_0x23f5('0x3e')]();logger['info'](_0x23f5('0x47'),_0x50c4ea);if(_0x46547a){logger[_0x23f5('0xb')](_0x23f5('0x48'),_0x46547a);logger['info'](JSON[_0x23f5('0x2d')](_0x1b7ac5[_0x50c4ea]));BPromise[_0x23f5('0x49')]()[_0x23f5('0x2a')](handleJob(_0x1b7ac5[_0x50c4ea]));logger[_0x23f5('0xb')]('run\x20job',_0x1b7ac5[_0x50c4ea][_0x23f5('0x16')],_0x1b7ac5[_0x50c4ea]['cron']);}else if(_0x1b7ac5[_0x50c4ea][_0x23f5('0x4a')]&&_0x1b7ac5[_0x50c4ea]['active']&&moment()[_0x23f5('0x4b')](_0x1b7ac5[_0x50c4ea][_0x23f5('0x4c')],_0x1b7ac5[_0x50c4ea][_0x23f5('0x4d')])){manager[_0x23f5('0x4e')](_0x50c4ea,_0x1b7ac5[_0x50c4ea][_0x23f5('0x4a')],handleJob(_0x1b7ac5[_0x50c4ea]));manager[_0x23f5('0x4f')](_0x50c4ea);logger[_0x23f5('0xb')]('add\x20cron',_0x1b7ac5[_0x50c4ea][_0x23f5('0x16')],_0x1b7ac5[_0x50c4ea]['cron']);}else if(manager[_0x23f5('0x50')](_0x50c4ea)){manager['stop'](_0x50c4ea);manager[_0x23f5('0x43')](_0x50c4ea);logger[_0x23f5('0xb')](_0x23f5('0x51'),_0x1b7ac5[_0x50c4ea][_0x23f5('0x16')],_0x1b7ac5[_0x50c4ea][_0x23f5('0x4a')]);}}for(_0x4d1d3b=0x0,_0x50c4ea;_0x4d1d3b<_0x253ded[_0x23f5('0x46')]&&!_0x46547a;_0x4d1d3b+=0x1){_0x50c4ea=_0x253ded[_0x4d1d3b][_0x23f5('0x3e')]();if(manager['exists'](_0x50c4ea)){if(_0x1b7ac5[_0x50c4ea][_0x23f5('0x4a')]&&_0x1b7ac5[_0x50c4ea][_0x23f5('0x52')]&&moment()[_0x23f5('0x4b')](_0x1b7ac5[_0x50c4ea][_0x23f5('0x4c')],_0x1b7ac5[_0x50c4ea][_0x23f5('0x4d')])){manager[_0x23f5('0x53')](_0x50c4ea,_0x1b7ac5[_0x50c4ea][_0x23f5('0x4a')],handleJob(_0x1b7ac5[_0x50c4ea]));logger[_0x23f5('0xb')](_0x23f5('0x54'),_0x1b7ac5[_0x50c4ea][_0x23f5('0x16')],_0x1b7ac5[_0x50c4ea][_0x23f5('0x4a')]);}else{manager[_0x23f5('0x42')](_0x50c4ea);manager[_0x23f5('0x43')](_0x50c4ea);logger[_0x23f5('0xb')](_0x23f5('0x51'),_0x1b7ac5[_0x50c4ea][_0x23f5('0x16')],_0x1b7ac5[_0x50c4ea]['cron']);}}}})[_0x23f5('0x38')](function(_0x465d6d){logger[_0x23f5('0x2b')](JSON[_0x23f5('0x2d')](_0x465d6d));});}exports['run']=function(_0x45515c){return getJobs(_0x45515c);};exports[_0x23f5('0x4f')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};