Built motion from commit 355702c8.|2.5.41
[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 _0x15dc=['run','util','path','lodash','moment','jayson/promise','bluebird','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','service','MailAccount','host','port','secure','auth','user','pass','format','name','subtractNumber','subtractUnit','join','savename','%s.%s','basename','extname','zip','existsSync','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','status','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','SendMail','then','error','error\x20mail','info','email\x20sent','catch','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','findAll','MailServerOut','keys','jobs','map','toString','keyBy','difference','intersection','exists','deleteJob','delete\x20cron','toRun','length','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','add\x20cron','stop\x20cron','update','update\x20cron','stop'];(function(_0x23397a,_0x30caa7){var _0x4e0a43=function(_0x358e49){while(--_0x358e49){_0x23397a['push'](_0x23397a['shift']());}};_0x4e0a43(++_0x30caa7);}(_0x15dc,0x171));var _0xc15d=function(_0x116d56,_0x1eef34){_0x116d56=_0x116d56-0x0;var _0x4b4f63=_0x15dc[_0x116d56];return _0x4b4f63;};'use strict';var fs=require('fs');var util=require(_0xc15d('0x0'));var path=require(_0xc15d('0x1'));var _=require(_0xc15d('0x2'));var moment=require(_0xc15d('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require(_0xc15d('0x4'));var BPromise=require(_0xc15d('0x5'));var logger=require('../logger')('schedule');var db=require(_0xc15d('0x6'))['db'];var analyticCustomReportController=require(_0xc15d('0x7'));var analyticDefaultReportController=require(_0xc15d('0x8'));var client=jayson[_0xc15d('0x9')][_0xc15d('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4c062c,_0x2047d5){return function(){logger['info'](_0xc15d('0xb'),_0x4c062c[_0xc15d('0xc')]);var _0x5d7cd4=!![];var _0x84b582={'tls':{'rejectUnauthorized':![]}};if(_0x4c062c['MailAccount'][_0xc15d('0xd')][_0xc15d('0xe')]){_0x84b582[_0xc15d('0xe')]=_0x4c062c[_0xc15d('0xf')][_0xc15d('0xd')][_0xc15d('0xe')];}else{_0x84b582[_0xc15d('0x10')]=_0x4c062c[_0xc15d('0xf')][_0xc15d('0xd')][_0xc15d('0x10')];_0x84b582[_0xc15d('0x11')]=_0x4c062c['MailAccount']['Smtp'][_0xc15d('0x11')];_0x84b582[_0xc15d('0x12')]=_0x4c062c[_0xc15d('0xf')]['Smtp']['secure'];}if(_0x4c062c[_0xc15d('0xf')][_0xc15d('0xd')]['authentication']){_0x84b582[_0xc15d('0x13')]={'user':_0x4c062c['MailAccount']['Smtp'][_0xc15d('0x14')],'pass':_0x4c062c['MailAccount'][_0xc15d('0xd')][_0xc15d('0x15')]};}var _0x2f93be={'account':_0x84b582,'message':{'from':util[_0xc15d('0x16')]('\x22%s\x22\x20<%s>',_0x4c062c['MailAccount'][_0xc15d('0x17')],_0x4c062c[_0xc15d('0xf')][_0xc15d('0xc')]||_0x4c062c['MailAccount'][_0xc15d('0xd')][_0xc15d('0x14')]),'to':_0x4c062c[_0xc15d('0xc')],'cc':_0x4c062c['cc'],'bcc':_0x4c062c['bcc'],'subject':util[_0xc15d('0x16')]('Report\x20%s\x20last\x20%s\x20%s',_0x2047d5[_0xc15d('0x17')],_0x4c062c[_0xc15d('0x18')],_0x4c062c[_0xc15d('0x19')])}};var _0x35a539=path[_0xc15d('0x1a')](__dirname,'../../files/reports');var _0x27b7e1=_0x2047d5[_0xc15d('0x1b')];var _0x507e92=util['format'](_0xc15d('0x1c'),path[_0xc15d('0x1d')](_0x2047d5['savename'],path[_0xc15d('0x1e')](_0x2047d5[_0xc15d('0x1b')])),_0xc15d('0x1f'));var _0x41d615=path[_0xc15d('0x1a')](_0x35a539,_0x27b7e1);var _0xbf487b=path['join'](_0x35a539,_0x507e92);if(fs[_0xc15d('0x20')](_0x41d615)){_0x2047d5['status']=_0xc15d('0x21');_0x2f93be[_0xc15d('0x22')]['attachments']=[{'filename':_0x27b7e1,'path':_0x41d615}];_0x2f93be[_0xc15d('0x22')]['text']=util[_0xc15d('0x16')](_0xc15d('0x23'),JSON[_0xc15d('0x24')](_0x2047d5,null,0x2));}else if(fs[_0xc15d('0x20')](_0xbf487b)){_0x2047d5[_0xc15d('0x25')]=_0xc15d('0x21');_0x2f93be[_0xc15d('0x22')]['attachments']=[{'filename':_0x507e92,'path':_0xbf487b}];}else{_0x2f93be[_0xc15d('0x22')][_0xc15d('0x26')]=_0xc15d('0x27');if(!_0x4c062c[_0xc15d('0x28')]){_0x5d7cd4=![];logger['info'](_0xc15d('0x29'));}}if(_0x5d7cd4){return client['request'](_0xc15d('0x2a'),_0x2f93be)[_0xc15d('0x2b')](function(_0x1a20e7){if(_0x1a20e7[_0xc15d('0x2c')]){return logger[_0xc15d('0x2c')](_0xc15d('0x2d'),JSON[_0xc15d('0x24')](_0x1a20e7));}return logger[_0xc15d('0x2e')](_0xc15d('0x2f'));})[_0xc15d('0x30')](function(_0x516d47){return logger[_0xc15d('0x2c')](_0xc15d('0x2d'),JSON[_0xc15d('0x24')](_0x516d47));});}};}function handleError(){return function(_0x42be98){return logger[_0xc15d('0x2c')](JSON[_0xc15d('0x24')](_0x42be98));};}function handleResult(_0x8b7b45){return function(_0x5271c4){logger[_0xc15d('0x2e')](_0xc15d('0x31'),JSON[_0xc15d('0x24')](_0x5271c4));if(_0x8b7b45[_0xc15d('0xf')]&&_0x8b7b45[_0xc15d('0xf')]['Smtp']&&!_[_0xc15d('0x32')](_0x8b7b45[_0xc15d('0xc')])){setTimeout(handleSendEmail(_0x8b7b45,_0x5271c4),0x3c*0x3e8);}};}function handleJob(_0x2e5600){return function(){try{if(_[_0xc15d('0x32')](_0x2e5600['subtractNumber'])){return logger[_0xc15d('0x2e')](_0xc15d('0x33'));}if(_[_0xc15d('0x32')](_0x2e5600[_0xc15d('0x19')])){return logger[_0xc15d('0x2e')](_0xc15d('0x34'));}var _0x575a46={'startDate':moment()[_0xc15d('0x35')](_0x2e5600['subtractNumber'],_0x2e5600[_0xc15d('0x19')])[_0xc15d('0x16')](_0xc15d('0x36')),'endDate':moment()['format'](_0xc15d('0x36')),'type':_0xc15d('0x37'),'output':_0x2e5600[_0xc15d('0x38')],'name':_0x2e5600[_0xc15d('0x17')]};if(!_[_0xc15d('0x32')](_0x2e5600[_0xc15d('0x39')])){logger[_0xc15d('0x2e')]('exec\x20defaul\x20report\x20id:%s',_0x2e5600['DefaultReportId']);return analyticDefaultReportController[_0xc15d('0x3a')]({'id':_0x2e5600[_0xc15d('0x39')]},_0x575a46)[_0xc15d('0x2b')](handleResult(_0x2e5600))[_0xc15d('0x30')](handleError());}if(!_[_0xc15d('0x32')](_0x2e5600[_0xc15d('0x3b')])){logger[_0xc15d('0x2e')](_0xc15d('0x3c'),_0x2e5600[_0xc15d('0x3b')]);return analyticCustomReportController[_0xc15d('0x3a')]({'id':_0x2e5600[_0xc15d('0x3b')]},_0x575a46)[_0xc15d('0x2b')](handleResult(_0x2e5600))[_0xc15d('0x30')](handleError());}}catch(_0x2db6ee){logger[_0xc15d('0x2c')](JSON[_0xc15d('0x24')](_0x2db6ee));}return logger[_0xc15d('0x2e')](_0xc15d('0x3d'));};}function getJobs(_0x4dcfba){var _0x3e8883={};if(_0x4dcfba){_0x3e8883['id']=_0x4dcfba;}return db['Schedule'][_0xc15d('0x3e')]({'where':_0x3e8883,'include':[{'model':db[_0xc15d('0xf')],'attributes':['id',_0xc15d('0x17'),_0xc15d('0xc')],'include':[{'model':db[_0xc15d('0x3f')],'as':_0xc15d('0xd')}]}]})[_0xc15d('0x2b')](function(_0x2e783d){var _0x133ce7=_[_0xc15d('0x40')](manager[_0xc15d('0x41')]);var _0x4e14d5=_[_0xc15d('0x42')](_0x2e783d,function(_0x371ae5){return _0x371ae5['id'][_0xc15d('0x43')]();});var _0x42453c=_[_0xc15d('0x44')](_0x2e783d,function(_0x1db9be){return _0x1db9be['id'][_0xc15d('0x43')]();});var _0x59e7e2=_0x4dcfba?_0x4e14d5:_[_0xc15d('0x45')](_0x4e14d5,_0x133ce7);var _0x54f0f7=_[_0xc15d('0x46')](_0x4e14d5,_0x133ce7);var _0x16e5d4=_['difference'](_0x133ce7,_0x4e14d5);var _0x88577;var _0x130612;for(_0x88577=0x0;_0x88577<_0x16e5d4['length']&&!_0x4dcfba;_0x88577+=0x1){_0x130612=_0x16e5d4[_0x88577][_0xc15d('0x43')]();if(manager[_0xc15d('0x47')](_0x130612)){manager['stop'](_0x130612);manager[_0xc15d('0x48')](_0x130612);logger[_0xc15d('0x2e')](_0xc15d('0x49'),_0x130612);}}logger[_0xc15d('0x2e')](_0xc15d('0x4a'),JSON[_0xc15d('0x24')](_0x59e7e2));for(_0x88577=0x0;_0x88577<_0x59e7e2[_0xc15d('0x4b')];_0x88577+=0x1){_0x130612=_0x59e7e2[_0x88577][_0xc15d('0x43')]();logger['info'](_0xc15d('0x4c'),_0x130612);if(_0x4dcfba){logger[_0xc15d('0x2e')](_0xc15d('0x4d'),_0x4dcfba);logger[_0xc15d('0x2e')](JSON[_0xc15d('0x24')](_0x42453c[_0x130612]));BPromise[_0xc15d('0x4e')]()['then'](handleJob(_0x42453c[_0x130612]));logger[_0xc15d('0x2e')](_0xc15d('0x4f'),_0x42453c[_0x130612]['name'],_0x42453c[_0x130612][_0xc15d('0x50')]);}else if(_0x42453c[_0x130612][_0xc15d('0x50')]&&_0x42453c[_0x130612][_0xc15d('0x51')]&&moment()[_0xc15d('0x52')](_0x42453c[_0x130612][_0xc15d('0x53')],_0x42453c[_0x130612][_0xc15d('0x54')])){manager[_0xc15d('0x55')](_0x130612,_0x42453c[_0x130612][_0xc15d('0x50')],handleJob(_0x42453c[_0x130612]));manager['start'](_0x130612);logger[_0xc15d('0x2e')](_0xc15d('0x56'),_0x42453c[_0x130612][_0xc15d('0x17')],_0x42453c[_0x130612][_0xc15d('0x50')]);}else if(manager['exists'](_0x130612)){manager['stop'](_0x130612);manager[_0xc15d('0x48')](_0x130612);logger[_0xc15d('0x2e')](_0xc15d('0x57'),_0x42453c[_0x130612]['name'],_0x42453c[_0x130612][_0xc15d('0x50')]);}}for(_0x88577=0x0,_0x130612;_0x88577<_0x54f0f7[_0xc15d('0x4b')]&&!_0x4dcfba;_0x88577+=0x1){_0x130612=_0x54f0f7[_0x88577][_0xc15d('0x43')]();if(manager['exists'](_0x130612)){if(_0x42453c[_0x130612][_0xc15d('0x50')]&&_0x42453c[_0x130612][_0xc15d('0x51')]&&moment()[_0xc15d('0x52')](_0x42453c[_0x130612][_0xc15d('0x53')],_0x42453c[_0x130612][_0xc15d('0x54')])){manager[_0xc15d('0x58')](_0x130612,_0x42453c[_0x130612][_0xc15d('0x50')],handleJob(_0x42453c[_0x130612]));logger[_0xc15d('0x2e')](_0xc15d('0x59'),_0x42453c[_0x130612][_0xc15d('0x17')],_0x42453c[_0x130612]['cron']);}else{manager[_0xc15d('0x5a')](_0x130612);manager[_0xc15d('0x48')](_0x130612);logger['info'](_0xc15d('0x57'),_0x42453c[_0x130612][_0xc15d('0x17')],_0x42453c[_0x130612][_0xc15d('0x50')]);}}}})['catch'](function(_0x518bfd){logger[_0xc15d('0x2c')](JSON[_0xc15d('0x24')](_0x518bfd));});}exports[_0xc15d('0x5b')]=function(_0x580df5){return getJobs(_0x580df5);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};