Built motion from commit (unavailable).|2.4.17
[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 _0x4784=['keys','jobs','map','toString','keyBy','intersection','length','stop','deleteJob','delete\x20cron','toRun','index','my\x20id','run\x20job','cron','active','isBetween','endAt','add','start','add\x20cron','exists','startAt','update','update\x20cron','stop\x20cron','run','util','path','lodash','moment','jayson/promise','../logger','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','auth','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','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','stringify','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','email\x20sent','info','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','catch','CustomReportId','no\x20report\x20id','Schedule','findAll','MailServerOut'];(function(_0x262a0b,_0x20d859){var _0x15f521=function(_0x317318){while(--_0x317318){_0x262a0b['push'](_0x262a0b['shift']());}};_0x15f521(++_0x20d859);}(_0x4784,0xd3));var _0x4478=function(_0x3ee629,_0x11d3b8){_0x3ee629=_0x3ee629-0x0;var _0x21458d=_0x4784[_0x3ee629];return _0x21458d;};'use strict';var fs=require('fs');var util=require(_0x4478('0x0'));var path=require(_0x4478('0x1'));var _=require(_0x4478('0x2'));var moment=require(_0x4478('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require(_0x4478('0x4'));var BPromise=require('bluebird');var logger=require(_0x4478('0x5'))(_0x4478('0x6'));var db=require(_0x4478('0x7'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0x4478('0x8'));var client=jayson['client'][_0x4478('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x3b5908,_0x21a567){return function(){logger['info'](_0x4478('0xa'),_0x3b5908[_0x4478('0xb')]);var _0x4eead8=!![];var _0x57019c={'tls':{'rejectUnauthorized':![]}};if(_0x3b5908[_0x4478('0xc')][_0x4478('0xd')][_0x4478('0xe')]){_0x57019c[_0x4478('0xe')]=_0x3b5908[_0x4478('0xc')][_0x4478('0xd')]['service'];}else{_0x57019c[_0x4478('0xf')]=_0x3b5908[_0x4478('0xc')][_0x4478('0xd')][_0x4478('0xf')];_0x57019c[_0x4478('0x10')]=_0x3b5908['MailAccount'][_0x4478('0xd')][_0x4478('0x10')];_0x57019c['secure']=_0x3b5908[_0x4478('0xc')][_0x4478('0xd')][_0x4478('0x11')];}if(_0x3b5908[_0x4478('0xc')]['Smtp']['authentication']){_0x57019c[_0x4478('0x12')]={'user':_0x3b5908[_0x4478('0xc')][_0x4478('0xd')][_0x4478('0x13')],'pass':_0x3b5908[_0x4478('0xc')]['Smtp'][_0x4478('0x14')]};}var _0x15bdfc={'account':_0x57019c,'message':{'from':util[_0x4478('0x15')](_0x4478('0x16'),_0x3b5908[_0x4478('0xc')][_0x4478('0x17')],_0x3b5908['MailAccount'][_0x4478('0xb')]||_0x3b5908['MailAccount']['Smtp'][_0x4478('0x13')]),'to':_0x3b5908[_0x4478('0xb')],'cc':_0x3b5908['cc'],'bcc':_0x3b5908[_0x4478('0x18')],'subject':util[_0x4478('0x15')]('Report\x20%s\x20last\x20%s\x20%s',_0x21a567[_0x4478('0x17')],_0x3b5908[_0x4478('0x19')],_0x3b5908[_0x4478('0x1a')])}};var _0x23888a=path[_0x4478('0x1b')](__dirname,_0x4478('0x1c'));var _0x349c95=_0x21a567[_0x4478('0x1d')];var _0x4038ca=util['format'](_0x4478('0x1e'),path[_0x4478('0x1f')](_0x21a567[_0x4478('0x1d')],path[_0x4478('0x20')](_0x21a567['savename'])),'zip');var _0x26b810=path[_0x4478('0x1b')](_0x23888a,_0x349c95);var _0x2c6986=path[_0x4478('0x1b')](_0x23888a,_0x4038ca);if(fs['existsSync'](_0x26b810)){_0x21a567[_0x4478('0x21')]=_0x4478('0x22');_0x15bdfc[_0x4478('0x23')][_0x4478('0x24')]=[{'filename':_0x349c95,'path':_0x26b810}];_0x15bdfc[_0x4478('0x23')][_0x4478('0x25')]=util[_0x4478('0x15')](_0x4478('0x26'),JSON[_0x4478('0x27')](_0x21a567,null,0x2));}else if(fs['existsSync'](_0x2c6986)){_0x21a567['status']=_0x4478('0x22');_0x15bdfc[_0x4478('0x23')][_0x4478('0x24')]=[{'filename':_0x4038ca,'path':_0x2c6986}];}else{_0x15bdfc[_0x4478('0x23')][_0x4478('0x25')]=_0x4478('0x28');if(!_0x3b5908[_0x4478('0x29')]){_0x4eead8=![];logger['info'](_0x4478('0x2a'));}}if(_0x4eead8){return client['request'](_0x4478('0x2b'),_0x15bdfc)[_0x4478('0x2c')](function(_0x415f7c){if(_0x415f7c[_0x4478('0x2d')]){return logger[_0x4478('0x2d')](_0x4478('0x2e'),JSON[_0x4478('0x27')](_0x415f7c));}return logger['info'](_0x4478('0x2f'));})['catch'](function(_0x1e2826){return logger[_0x4478('0x2d')](_0x4478('0x2e'),JSON[_0x4478('0x27')](_0x1e2826));});}};}function handleError(){return function(_0x582b5c){return logger['error'](JSON['stringify'](_0x582b5c));};}function handleResult(_0x1d46cf){return function(_0x4d408b){logger[_0x4478('0x30')](_0x4478('0x31'),JSON['stringify'](_0x4d408b));if(_0x1d46cf[_0x4478('0xc')]&&_0x1d46cf['MailAccount'][_0x4478('0xd')]&&!_[_0x4478('0x32')](_0x1d46cf[_0x4478('0xb')])){setTimeout(handleSendEmail(_0x1d46cf,_0x4d408b),0x3c*0x3e8);}};}function handleJob(_0x39e6d2){return function(){try{if(_[_0x4478('0x32')](_0x39e6d2[_0x4478('0x19')])){return logger[_0x4478('0x30')](_0x4478('0x33'));}if(_['isNil'](_0x39e6d2['subtractUnit'])){return logger[_0x4478('0x30')](_0x4478('0x34'));}var _0x1f5fde={'startDate':moment()[_0x4478('0x35')](_0x39e6d2['subtractNumber'],_0x39e6d2[_0x4478('0x1a')])[_0x4478('0x15')](_0x4478('0x36')),'endDate':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'type':_0x4478('0x37'),'output':_0x39e6d2['output'],'name':_0x39e6d2[_0x4478('0x17')]};if(!_['isNil'](_0x39e6d2[_0x4478('0x38')])){logger[_0x4478('0x30')](_0x4478('0x39'),_0x39e6d2[_0x4478('0x38')]);return analyticDefaultReportController[_0x4478('0x3a')]({'id':_0x39e6d2[_0x4478('0x38')]},_0x1f5fde)[_0x4478('0x2c')](handleResult(_0x39e6d2))[_0x4478('0x3b')](handleError());}if(!_[_0x4478('0x32')](_0x39e6d2['CustomReportId'])){logger[_0x4478('0x30')]('exec\x20custom\x20report\x20id:%s',_0x39e6d2[_0x4478('0x3c')]);return analyticCustomReportController[_0x4478('0x3a')]({'id':_0x39e6d2[_0x4478('0x3c')]},_0x1f5fde)[_0x4478('0x2c')](handleResult(_0x39e6d2))['catch'](handleError());}}catch(_0x29dfb8){logger['error'](JSON['stringify'](_0x29dfb8));}return logger[_0x4478('0x30')](_0x4478('0x3d'));};}function getJobs(_0xedd313){var _0x3dfe1a={};if(_0xedd313){_0x3dfe1a['id']=_0xedd313;}return db[_0x4478('0x3e')][_0x4478('0x3f')]({'where':_0x3dfe1a,'include':[{'model':db['MailAccount'],'attributes':['id',_0x4478('0x17'),_0x4478('0xb')],'include':[{'model':db[_0x4478('0x40')],'as':_0x4478('0xd')}]}]})[_0x4478('0x2c')](function(_0x2543af){var _0x46cfd0=_[_0x4478('0x41')](manager[_0x4478('0x42')]);var _0x2bc916=_[_0x4478('0x43')](_0x2543af,function(_0x48193d){return _0x48193d['id'][_0x4478('0x44')]();});var _0x1d25e3=_[_0x4478('0x45')](_0x2543af,function(_0x31dc43){return _0x31dc43['id'][_0x4478('0x44')]();});var _0xe40c7c=_0xedd313?_0x2bc916:_['difference'](_0x2bc916,_0x46cfd0);var _0x366100=_[_0x4478('0x46')](_0x2bc916,_0x46cfd0);var _0x173399=_['difference'](_0x46cfd0,_0x2bc916);var _0x4e1f2e;var _0x3a795f;for(_0x4e1f2e=0x0;_0x4e1f2e<_0x173399[_0x4478('0x47')]&&!_0xedd313;_0x4e1f2e+=0x1){_0x3a795f=_0x173399[_0x4e1f2e]['toString']();if(manager['exists'](_0x3a795f)){manager[_0x4478('0x48')](_0x3a795f);manager[_0x4478('0x49')](_0x3a795f);logger[_0x4478('0x30')](_0x4478('0x4a'),_0x3a795f);}}logger[_0x4478('0x30')](_0x4478('0x4b'),JSON[_0x4478('0x27')](_0xe40c7c));for(_0x4e1f2e=0x0;_0x4e1f2e<_0xe40c7c[_0x4478('0x47')];_0x4e1f2e+=0x1){_0x3a795f=_0xe40c7c[_0x4e1f2e][_0x4478('0x44')]();logger[_0x4478('0x30')](_0x4478('0x4c'),_0x3a795f);if(_0xedd313){logger[_0x4478('0x30')](_0x4478('0x4d'),_0xedd313);logger[_0x4478('0x30')](JSON[_0x4478('0x27')](_0x1d25e3[_0x3a795f]));BPromise['resolve']()[_0x4478('0x2c')](handleJob(_0x1d25e3[_0x3a795f]));logger[_0x4478('0x30')](_0x4478('0x4e'),_0x1d25e3[_0x3a795f][_0x4478('0x17')],_0x1d25e3[_0x3a795f][_0x4478('0x4f')]);}else if(_0x1d25e3[_0x3a795f][_0x4478('0x4f')]&&_0x1d25e3[_0x3a795f][_0x4478('0x50')]&&moment()[_0x4478('0x51')](_0x1d25e3[_0x3a795f]['startAt'],_0x1d25e3[_0x3a795f][_0x4478('0x52')])){manager[_0x4478('0x53')](_0x3a795f,_0x1d25e3[_0x3a795f][_0x4478('0x4f')],handleJob(_0x1d25e3[_0x3a795f]));manager[_0x4478('0x54')](_0x3a795f);logger[_0x4478('0x30')](_0x4478('0x55'),_0x1d25e3[_0x3a795f][_0x4478('0x17')],_0x1d25e3[_0x3a795f][_0x4478('0x4f')]);}else if(manager[_0x4478('0x56')](_0x3a795f)){manager[_0x4478('0x48')](_0x3a795f);manager[_0x4478('0x49')](_0x3a795f);logger[_0x4478('0x30')]('stop\x20cron',_0x1d25e3[_0x3a795f][_0x4478('0x17')],_0x1d25e3[_0x3a795f][_0x4478('0x4f')]);}}for(_0x4e1f2e=0x0,_0x3a795f;_0x4e1f2e<_0x366100[_0x4478('0x47')]&&!_0xedd313;_0x4e1f2e+=0x1){_0x3a795f=_0x366100[_0x4e1f2e][_0x4478('0x44')]();if(manager[_0x4478('0x56')](_0x3a795f)){if(_0x1d25e3[_0x3a795f][_0x4478('0x4f')]&&_0x1d25e3[_0x3a795f][_0x4478('0x50')]&&moment()[_0x4478('0x51')](_0x1d25e3[_0x3a795f][_0x4478('0x57')],_0x1d25e3[_0x3a795f][_0x4478('0x52')])){manager[_0x4478('0x58')](_0x3a795f,_0x1d25e3[_0x3a795f][_0x4478('0x4f')],handleJob(_0x1d25e3[_0x3a795f]));logger[_0x4478('0x30')](_0x4478('0x59'),_0x1d25e3[_0x3a795f][_0x4478('0x17')],_0x1d25e3[_0x3a795f][_0x4478('0x4f')]);}else{manager['stop'](_0x3a795f);manager[_0x4478('0x49')](_0x3a795f);logger['info'](_0x4478('0x5a'),_0x1d25e3[_0x3a795f]['name'],_0x1d25e3[_0x3a795f]['cron']);}}}})[_0x4478('0x3b')](function(_0x6017c9){logger['error'](JSON[_0x4478('0x27')](_0x6017c9));});}exports[_0x4478('0x5b')]=function(_0x3ff74b){return getJobs(_0x3ff74b);};exports[_0x4478('0x54')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};