Built motion from commit (unavailable).|2.4.18
[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 _0x5efb=['subtractNumber\x20null\x20or\x20undefined','subtractUnit','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','DefaultReportId','catch','CustomReportId','runReport','no\x20report\x20id','Schedule','findAll','keys','jobs','toString','keyBy','intersection','difference','length','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','add','start','stop','stop\x20cron','endAt','update','update\x20cron','run','util','path','lodash','moment','cron-job-manager','bluebird','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','service','host','Smtp','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','join','../../files/reports','savename','basename','status','Sent','message','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','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','stringify','isNil'];(function(_0x387f36,_0x1ce70f){var _0x2e029f=function(_0x22c203){while(--_0x22c203){_0x387f36['push'](_0x387f36['shift']());}};_0x2e029f(++_0x1ce70f);}(_0x5efb,0x12a));var _0xb5ef=function(_0x564b0a,_0x4dd651){_0x564b0a=_0x564b0a-0x0;var _0x350a24=_0x5efb[_0x564b0a];return _0x350a24;};'use strict';var fs=require('fs');var util=require(_0xb5ef('0x0'));var path=require(_0xb5ef('0x1'));var _=require(_0xb5ef('0x2'));var moment=require(_0xb5ef('0x3'));var CronJobManager=require(_0xb5ef('0x4'));var jayson=require('jayson/promise');var BPromise=require(_0xb5ef('0x5'));var logger=require('../logger')('schedule');var db=require(_0xb5ef('0x6'))['db'];var analyticCustomReportController=require(_0xb5ef('0x7'));var analyticDefaultReportController=require(_0xb5ef('0x8'));var client=jayson[_0xb5ef('0x9')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0xa5d870,_0x22ea74){return function(){logger[_0xb5ef('0xa')](_0xb5ef('0xb'),_0xa5d870[_0xb5ef('0xc')]);var _0x3c6218=!![];var _0x31b5ee={'tls':{'rejectUnauthorized':![]}};if(_0xa5d870[_0xb5ef('0xd')]['Smtp'][_0xb5ef('0xe')]){_0x31b5ee[_0xb5ef('0xe')]=_0xa5d870[_0xb5ef('0xd')]['Smtp'][_0xb5ef('0xe')];}else{_0x31b5ee[_0xb5ef('0xf')]=_0xa5d870[_0xb5ef('0xd')]['Smtp']['host'];_0x31b5ee['port']=_0xa5d870[_0xb5ef('0xd')][_0xb5ef('0x10')]['port'];_0x31b5ee[_0xb5ef('0x11')]=_0xa5d870[_0xb5ef('0xd')]['Smtp']['secure'];}if(_0xa5d870[_0xb5ef('0xd')]['Smtp'][_0xb5ef('0x12')]){_0x31b5ee[_0xb5ef('0x13')]={'user':_0xa5d870['MailAccount'][_0xb5ef('0x10')][_0xb5ef('0x14')],'pass':_0xa5d870['MailAccount'][_0xb5ef('0x10')][_0xb5ef('0x15')]};}var _0x826175={'account':_0x31b5ee,'message':{'from':util[_0xb5ef('0x16')](_0xb5ef('0x17'),_0xa5d870[_0xb5ef('0xd')][_0xb5ef('0x18')],_0xa5d870[_0xb5ef('0xd')][_0xb5ef('0xc')]||_0xa5d870['MailAccount'][_0xb5ef('0x10')][_0xb5ef('0x14')]),'to':_0xa5d870[_0xb5ef('0xc')],'cc':_0xa5d870['cc'],'bcc':_0xa5d870[_0xb5ef('0x19')],'subject':util[_0xb5ef('0x16')](_0xb5ef('0x1a'),_0x22ea74[_0xb5ef('0x18')],_0xa5d870[_0xb5ef('0x1b')],_0xa5d870['subtractUnit'])}};var _0x5b933b=path[_0xb5ef('0x1c')](__dirname,_0xb5ef('0x1d'));var _0x2068da=_0x22ea74[_0xb5ef('0x1e')];var _0xbcb9c2=util[_0xb5ef('0x16')]('%s.%s',path[_0xb5ef('0x1f')](_0x22ea74['savename'],path['extname'](_0x22ea74[_0xb5ef('0x1e')])),'zip');var _0x3cd0f1=path[_0xb5ef('0x1c')](_0x5b933b,_0x2068da);var _0xfb06ce=path[_0xb5ef('0x1c')](_0x5b933b,_0xbcb9c2);if(fs['existsSync'](_0x3cd0f1)){_0x22ea74[_0xb5ef('0x20')]=_0xb5ef('0x21');_0x826175[_0xb5ef('0x22')]['attachments']=[{'filename':_0x2068da,'path':_0x3cd0f1}];_0x826175[_0xb5ef('0x22')][_0xb5ef('0x23')]=util[_0xb5ef('0x16')](_0xb5ef('0x24'),JSON['stringify'](_0x22ea74,null,0x2));}else if(fs['existsSync'](_0xfb06ce)){_0x22ea74[_0xb5ef('0x20')]=_0xb5ef('0x21');_0x826175[_0xb5ef('0x22')]['attachments']=[{'filename':_0xbcb9c2,'path':_0xfb06ce}];}else{_0x826175[_0xb5ef('0x22')][_0xb5ef('0x23')]='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0xa5d870[_0xb5ef('0x25')]){_0x3c6218=![];logger[_0xb5ef('0xa')](_0xb5ef('0x26'));}}if(_0x3c6218){return client[_0xb5ef('0x27')](_0xb5ef('0x28'),_0x826175)[_0xb5ef('0x29')](function(_0x27a91f){if(_0x27a91f[_0xb5ef('0x2a')]){return logger[_0xb5ef('0x2a')](_0xb5ef('0x2b'),JSON[_0xb5ef('0x2c')](_0x27a91f));}return logger[_0xb5ef('0xa')]('email\x20sent');})['catch'](function(_0x45c138){return logger[_0xb5ef('0x2a')]('error\x20mail',JSON[_0xb5ef('0x2c')](_0x45c138));});}};}function handleError(){return function(_0x4fdf43){return logger[_0xb5ef('0x2a')](JSON[_0xb5ef('0x2c')](_0x4fdf43));};}function handleResult(_0x3357bd){return function(_0x4f67a1){logger[_0xb5ef('0xa')]('data',JSON['stringify'](_0x4f67a1));if(_0x3357bd['MailAccount']&&_0x3357bd[_0xb5ef('0xd')][_0xb5ef('0x10')]&&!_[_0xb5ef('0x2d')](_0x3357bd[_0xb5ef('0xc')])){setTimeout(handleSendEmail(_0x3357bd,_0x4f67a1),0x3c*0x3e8);}};}function handleJob(_0x5839d7){return function(){try{if(_[_0xb5ef('0x2d')](_0x5839d7[_0xb5ef('0x1b')])){return logger[_0xb5ef('0xa')](_0xb5ef('0x2e'));}if(_[_0xb5ef('0x2d')](_0x5839d7[_0xb5ef('0x2f')])){return logger[_0xb5ef('0xa')]('subtractUnit\x20null\x20or\x20undefined');}var _0x18e904={'startDate':moment()[_0xb5ef('0x30')](_0x5839d7['subtractNumber'],_0x5839d7[_0xb5ef('0x2f')])[_0xb5ef('0x16')](_0xb5ef('0x31')),'endDate':moment()[_0xb5ef('0x16')](_0xb5ef('0x31')),'type':_0xb5ef('0x32'),'output':_0x5839d7[_0xb5ef('0x33')],'name':_0x5839d7[_0xb5ef('0x18')]};if(!_[_0xb5ef('0x2d')](_0x5839d7['DefaultReportId'])){logger[_0xb5ef('0xa')](_0xb5ef('0x34'),_0x5839d7[_0xb5ef('0x35')]);return analyticDefaultReportController['runReport']({'id':_0x5839d7[_0xb5ef('0x35')]},_0x18e904)[_0xb5ef('0x29')](handleResult(_0x5839d7))[_0xb5ef('0x36')](handleError());}if(!_[_0xb5ef('0x2d')](_0x5839d7[_0xb5ef('0x37')])){logger[_0xb5ef('0xa')]('exec\x20custom\x20report\x20id:%s',_0x5839d7[_0xb5ef('0x37')]);return analyticCustomReportController[_0xb5ef('0x38')]({'id':_0x5839d7[_0xb5ef('0x37')]},_0x18e904)[_0xb5ef('0x29')](handleResult(_0x5839d7))[_0xb5ef('0x36')](handleError());}}catch(_0x584e3b){logger[_0xb5ef('0x2a')](JSON[_0xb5ef('0x2c')](_0x584e3b));}return logger['info'](_0xb5ef('0x39'));};}function getJobs(_0x3fbc5c){var _0x531170={};if(_0x3fbc5c){_0x531170['id']=_0x3fbc5c;}return db[_0xb5ef('0x3a')][_0xb5ef('0x3b')]({'where':_0x531170,'include':[{'model':db[_0xb5ef('0xd')],'attributes':['id',_0xb5ef('0x18'),_0xb5ef('0xc')],'include':[{'model':db['MailServerOut'],'as':_0xb5ef('0x10')}]}]})[_0xb5ef('0x29')](function(_0x3cba68){var _0x2414fa=_[_0xb5ef('0x3c')](manager[_0xb5ef('0x3d')]);var _0x45c1ca=_['map'](_0x3cba68,function(_0xfe7f27){return _0xfe7f27['id'][_0xb5ef('0x3e')]();});var _0x413e89=_[_0xb5ef('0x3f')](_0x3cba68,function(_0x10955f){return _0x10955f['id']['toString']();});var _0x3090d3=_0x3fbc5c?_0x45c1ca:_['difference'](_0x45c1ca,_0x2414fa);var _0x219e01=_[_0xb5ef('0x40')](_0x45c1ca,_0x2414fa);var _0x27f6a2=_[_0xb5ef('0x41')](_0x2414fa,_0x45c1ca);var _0x4d03e1;var _0x532d70;for(_0x4d03e1=0x0;_0x4d03e1<_0x27f6a2[_0xb5ef('0x42')]&&!_0x3fbc5c;_0x4d03e1+=0x1){_0x532d70=_0x27f6a2[_0x4d03e1][_0xb5ef('0x3e')]();if(manager['exists'](_0x532d70)){manager['stop'](_0x532d70);manager[_0xb5ef('0x43')](_0x532d70);logger['info'](_0xb5ef('0x44'),_0x532d70);}}logger['info'](_0xb5ef('0x45'),JSON['stringify'](_0x3090d3));for(_0x4d03e1=0x0;_0x4d03e1<_0x3090d3[_0xb5ef('0x42')];_0x4d03e1+=0x1){_0x532d70=_0x3090d3[_0x4d03e1][_0xb5ef('0x3e')]();logger[_0xb5ef('0xa')](_0xb5ef('0x46'),_0x532d70);if(_0x3fbc5c){logger[_0xb5ef('0xa')](_0xb5ef('0x47'),_0x3fbc5c);logger['info'](JSON[_0xb5ef('0x2c')](_0x413e89[_0x532d70]));BPromise[_0xb5ef('0x48')]()[_0xb5ef('0x29')](handleJob(_0x413e89[_0x532d70]));logger[_0xb5ef('0xa')](_0xb5ef('0x49'),_0x413e89[_0x532d70]['name'],_0x413e89[_0x532d70][_0xb5ef('0x4a')]);}else if(_0x413e89[_0x532d70]['cron']&&_0x413e89[_0x532d70][_0xb5ef('0x4b')]&&moment()[_0xb5ef('0x4c')](_0x413e89[_0x532d70][_0xb5ef('0x4d')],_0x413e89[_0x532d70]['endAt'])){manager[_0xb5ef('0x4e')](_0x532d70,_0x413e89[_0x532d70]['cron'],handleJob(_0x413e89[_0x532d70]));manager[_0xb5ef('0x4f')](_0x532d70);logger[_0xb5ef('0xa')]('add\x20cron',_0x413e89[_0x532d70]['name'],_0x413e89[_0x532d70][_0xb5ef('0x4a')]);}else if(manager['exists'](_0x532d70)){manager[_0xb5ef('0x50')](_0x532d70);manager[_0xb5ef('0x43')](_0x532d70);logger[_0xb5ef('0xa')](_0xb5ef('0x51'),_0x413e89[_0x532d70][_0xb5ef('0x18')],_0x413e89[_0x532d70][_0xb5ef('0x4a')]);}}for(_0x4d03e1=0x0,_0x532d70;_0x4d03e1<_0x219e01[_0xb5ef('0x42')]&&!_0x3fbc5c;_0x4d03e1+=0x1){_0x532d70=_0x219e01[_0x4d03e1][_0xb5ef('0x3e')]();if(manager['exists'](_0x532d70)){if(_0x413e89[_0x532d70][_0xb5ef('0x4a')]&&_0x413e89[_0x532d70][_0xb5ef('0x4b')]&&moment()[_0xb5ef('0x4c')](_0x413e89[_0x532d70]['startAt'],_0x413e89[_0x532d70][_0xb5ef('0x52')])){manager[_0xb5ef('0x53')](_0x532d70,_0x413e89[_0x532d70]['cron'],handleJob(_0x413e89[_0x532d70]));logger[_0xb5ef('0xa')](_0xb5ef('0x54'),_0x413e89[_0x532d70][_0xb5ef('0x18')],_0x413e89[_0x532d70][_0xb5ef('0x4a')]);}else{manager['stop'](_0x532d70);manager[_0xb5ef('0x43')](_0x532d70);logger[_0xb5ef('0xa')](_0xb5ef('0x51'),_0x413e89[_0x532d70][_0xb5ef('0x18')],_0x413e89[_0x532d70][_0xb5ef('0x4a')]);}}}})[_0xb5ef('0x36')](function(_0x65119){logger[_0xb5ef('0x2a')](JSON[_0xb5ef('0x2c')](_0x65119));});}exports[_0xb5ef('0x55')]=function(_0x2436e3){return getJobs(_0x2436e3);};exports[_0xb5ef('0x4f')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};