Built motion from commit 9d0783e6.|2.6.13
[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 _0x4c2e=['keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','toRun','index','my\x20id','run\x20job','cron','active','isBetween','add','start','add\x20cron','stop\x20cron','startAt','endAt','update','update\x20cron','run','path','lodash','moment','jayson/promise','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','getSmtpOptions','format','MailAccount','name','user','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','status','Sent','message','attachments','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','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','stringify','email\x20sent','catch','data','Smtp','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','MailServerOut','CloudProvider','keys','jobs','map','toString'];(function(_0x308213,_0x224541){var _0x2e1619=function(_0x972b51){while(--_0x972b51){_0x308213['push'](_0x308213['shift']());}};_0x2e1619(++_0x224541);}(_0x4c2e,0x184));var _0xe4c2=function(_0x1e4360,_0x930b9b){_0x1e4360=_0x1e4360-0x0;var _0x31e6b4=_0x4c2e[_0x1e4360];return _0x31e6b4;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0xe4c2('0x0'));var _=require(_0xe4c2('0x1'));var moment=require(_0xe4c2('0x2'));var CronJobManager=require('cron-job-manager');var jayson=require(_0xe4c2('0x3'));var BPromise=require('bluebird');var logger=require(_0xe4c2('0x4'))(_0xe4c2('0x5'));var db=require(_0xe4c2('0x6'))['db'];var analyticCustomReportController=require(_0xe4c2('0x7'));var analyticDefaultReportController=require(_0xe4c2('0x8'));var client=jayson[_0xe4c2('0x9')][_0xe4c2('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4cef7b,_0x897dca){return function(){logger[_0xe4c2('0xb')](_0xe4c2('0xc'),_0x4cef7b[_0xe4c2('0xd')]);var _0x596df6=!![];var _0x532743=_0x4cef7b['MailAccount'][_0xe4c2('0xe')]();var _0x53a7bb={'account':_0x532743,'message':{'from':util[_0xe4c2('0xf')]('\x22%s\x22\x20<%s>',_0x4cef7b[_0xe4c2('0x10')][_0xe4c2('0x11')],_0x4cef7b['MailAccount'][_0xe4c2('0xd')]||_0x4cef7b[_0xe4c2('0x10')]['Smtp'][_0xe4c2('0x12')]),'to':_0x4cef7b[_0xe4c2('0xd')],'cc':_0x4cef7b['cc'],'bcc':_0x4cef7b['bcc'],'subject':util[_0xe4c2('0xf')](_0xe4c2('0x13'),_0x897dca[_0xe4c2('0x11')],_0x4cef7b[_0xe4c2('0x14')],_0x4cef7b[_0xe4c2('0x15')])}};var _0x3e0a66=path[_0xe4c2('0x16')](__dirname,_0xe4c2('0x17'));var _0x3c2d22=_0x897dca[_0xe4c2('0x18')];var _0x204958=util[_0xe4c2('0xf')](_0xe4c2('0x19'),path[_0xe4c2('0x1a')](_0x897dca[_0xe4c2('0x18')],path[_0xe4c2('0x1b')](_0x897dca[_0xe4c2('0x18')])),_0xe4c2('0x1c'));var _0x39f3f6=path['join'](_0x3e0a66,_0x3c2d22);var _0x5d29d4=path[_0xe4c2('0x16')](_0x3e0a66,_0x204958);if(fs[_0xe4c2('0x1d')](_0x39f3f6)){_0x897dca[_0xe4c2('0x1e')]=_0xe4c2('0x1f');_0x53a7bb[_0xe4c2('0x20')][_0xe4c2('0x21')]=[{'filename':_0x3c2d22,'path':_0x39f3f6}];_0x53a7bb[_0xe4c2('0x20')]['text']=util['format'](_0xe4c2('0x22'),JSON['stringify'](_0x897dca,null,0x2));}else if(fs[_0xe4c2('0x1d')](_0x5d29d4)){_0x897dca[_0xe4c2('0x1e')]='Sent';_0x53a7bb['message'][_0xe4c2('0x21')]=[{'filename':_0x204958,'path':_0x5d29d4}];}else{_0x53a7bb[_0xe4c2('0x20')][_0xe4c2('0x23')]=_0xe4c2('0x24');if(!_0x4cef7b[_0xe4c2('0x25')]){_0x596df6=![];logger[_0xe4c2('0xb')](_0xe4c2('0x26'));}}if(_0x596df6){return client['request'](_0xe4c2('0x27'),_0x53a7bb)[_0xe4c2('0x28')](function(_0x108912){if(_0x108912[_0xe4c2('0x29')]){return logger['error'](_0xe4c2('0x2a'),JSON[_0xe4c2('0x2b')](_0x108912));}return logger['info'](_0xe4c2('0x2c'));})[_0xe4c2('0x2d')](function(_0x1b2de1){return logger['error'](_0xe4c2('0x2a'),JSON[_0xe4c2('0x2b')](_0x1b2de1));});}};}function handleError(){return function(_0x49eef4){return logger[_0xe4c2('0x29')](JSON['stringify'](_0x49eef4));};}function handleResult(_0x1e8506){return function(_0x51d785){logger['info'](_0xe4c2('0x2e'),JSON[_0xe4c2('0x2b')](_0x51d785));if(_0x1e8506['MailAccount']&&_0x1e8506[_0xe4c2('0x10')][_0xe4c2('0x2f')]&&!_[_0xe4c2('0x30')](_0x1e8506[_0xe4c2('0xd')])){setTimeout(handleSendEmail(_0x1e8506,_0x51d785),0x3c*0x3e8);}};}function handleJob(_0x4f1597){return function(){try{if(_[_0xe4c2('0x30')](_0x4f1597['subtractNumber'])){return logger[_0xe4c2('0xb')](_0xe4c2('0x31'));}if(_[_0xe4c2('0x30')](_0x4f1597[_0xe4c2('0x15')])){return logger[_0xe4c2('0xb')](_0xe4c2('0x32'));}var _0x3f636e={'startDate':moment()['subtract'](_0x4f1597[_0xe4c2('0x14')],_0x4f1597[_0xe4c2('0x15')])[_0xe4c2('0xf')](_0xe4c2('0x33')),'endDate':moment()[_0xe4c2('0xf')]('YYYY-MM-DD\x20HH:mm:ss'),'type':_0xe4c2('0x34'),'output':_0x4f1597['output'],'name':_0x4f1597[_0xe4c2('0x11')]};if(!_[_0xe4c2('0x30')](_0x4f1597[_0xe4c2('0x35')])){logger[_0xe4c2('0xb')](_0xe4c2('0x36'),_0x4f1597[_0xe4c2('0x35')]);return analyticDefaultReportController[_0xe4c2('0x37')]({'id':_0x4f1597['DefaultReportId']},_0x3f636e)[_0xe4c2('0x28')](handleResult(_0x4f1597))[_0xe4c2('0x2d')](handleError());}if(!_['isNil'](_0x4f1597[_0xe4c2('0x38')])){logger[_0xe4c2('0xb')](_0xe4c2('0x39'),_0x4f1597[_0xe4c2('0x38')]);return analyticCustomReportController[_0xe4c2('0x37')]({'id':_0x4f1597[_0xe4c2('0x38')]},_0x3f636e)['then'](handleResult(_0x4f1597))[_0xe4c2('0x2d')](handleError());}}catch(_0x1f8e69){logger[_0xe4c2('0x29')](JSON[_0xe4c2('0x2b')](_0x1f8e69));}return logger['info'](_0xe4c2('0x3a'));};}function getJobs(_0x52f846){var _0x3604ed={};if(_0x52f846){_0x3604ed['id']=_0x52f846;}return db[_0xe4c2('0x3b')][_0xe4c2('0x3c')]({'where':_0x3604ed,'include':[{'model':db[_0xe4c2('0x10')],'attributes':['id',_0xe4c2('0x11'),_0xe4c2('0xd')],'include':[{'model':db[_0xe4c2('0x3d')],'as':'Smtp','include':[{'model':db[_0xe4c2('0x3e')],'as':'CloudProvider'}]}]}]})[_0xe4c2('0x28')](function(_0x3f07aa){var _0xf826a6=_[_0xe4c2('0x3f')](manager[_0xe4c2('0x40')]);var _0x406a47=_[_0xe4c2('0x41')](_0x3f07aa,function(_0x21afc1){return _0x21afc1['id'][_0xe4c2('0x42')]();});var _0x5c0ed2=_[_0xe4c2('0x43')](_0x3f07aa,function(_0x56a199){return _0x56a199['id'][_0xe4c2('0x42')]();});var _0x5e496b=_0x52f846?_0x406a47:_[_0xe4c2('0x44')](_0x406a47,_0xf826a6);var _0x339870=_[_0xe4c2('0x45')](_0x406a47,_0xf826a6);var _0x520031=_[_0xe4c2('0x44')](_0xf826a6,_0x406a47);var _0x3c691e;var _0x32e8cf;for(_0x3c691e=0x0;_0x3c691e<_0x520031[_0xe4c2('0x46')]&&!_0x52f846;_0x3c691e+=0x1){_0x32e8cf=_0x520031[_0x3c691e][_0xe4c2('0x42')]();if(manager[_0xe4c2('0x47')](_0x32e8cf)){manager[_0xe4c2('0x48')](_0x32e8cf);manager[_0xe4c2('0x49')](_0x32e8cf);logger[_0xe4c2('0xb')](_0xe4c2('0x4a'),_0x32e8cf);}}logger['info'](_0xe4c2('0x4b'),JSON[_0xe4c2('0x2b')](_0x5e496b));for(_0x3c691e=0x0;_0x3c691e<_0x5e496b[_0xe4c2('0x46')];_0x3c691e+=0x1){_0x32e8cf=_0x5e496b[_0x3c691e][_0xe4c2('0x42')]();logger['info'](_0xe4c2('0x4c'),_0x32e8cf);if(_0x52f846){logger[_0xe4c2('0xb')](_0xe4c2('0x4d'),_0x52f846);logger[_0xe4c2('0xb')](JSON['stringify'](_0x5c0ed2[_0x32e8cf]));BPromise['resolve']()[_0xe4c2('0x28')](handleJob(_0x5c0ed2[_0x32e8cf]));logger[_0xe4c2('0xb')](_0xe4c2('0x4e'),_0x5c0ed2[_0x32e8cf]['name'],_0x5c0ed2[_0x32e8cf][_0xe4c2('0x4f')]);}else if(_0x5c0ed2[_0x32e8cf][_0xe4c2('0x4f')]&&_0x5c0ed2[_0x32e8cf][_0xe4c2('0x50')]&&moment()[_0xe4c2('0x51')](_0x5c0ed2[_0x32e8cf]['startAt'],_0x5c0ed2[_0x32e8cf]['endAt'])){manager[_0xe4c2('0x52')](_0x32e8cf,_0x5c0ed2[_0x32e8cf]['cron'],handleJob(_0x5c0ed2[_0x32e8cf]));manager[_0xe4c2('0x53')](_0x32e8cf);logger[_0xe4c2('0xb')](_0xe4c2('0x54'),_0x5c0ed2[_0x32e8cf]['name'],_0x5c0ed2[_0x32e8cf][_0xe4c2('0x4f')]);}else if(manager[_0xe4c2('0x47')](_0x32e8cf)){manager[_0xe4c2('0x48')](_0x32e8cf);manager[_0xe4c2('0x49')](_0x32e8cf);logger[_0xe4c2('0xb')](_0xe4c2('0x55'),_0x5c0ed2[_0x32e8cf][_0xe4c2('0x11')],_0x5c0ed2[_0x32e8cf][_0xe4c2('0x4f')]);}}for(_0x3c691e=0x0,_0x32e8cf;_0x3c691e<_0x339870['length']&&!_0x52f846;_0x3c691e+=0x1){_0x32e8cf=_0x339870[_0x3c691e][_0xe4c2('0x42')]();if(manager[_0xe4c2('0x47')](_0x32e8cf)){if(_0x5c0ed2[_0x32e8cf]['cron']&&_0x5c0ed2[_0x32e8cf][_0xe4c2('0x50')]&&moment()[_0xe4c2('0x51')](_0x5c0ed2[_0x32e8cf][_0xe4c2('0x56')],_0x5c0ed2[_0x32e8cf][_0xe4c2('0x57')])){manager[_0xe4c2('0x58')](_0x32e8cf,_0x5c0ed2[_0x32e8cf][_0xe4c2('0x4f')],handleJob(_0x5c0ed2[_0x32e8cf]));logger[_0xe4c2('0xb')](_0xe4c2('0x59'),_0x5c0ed2[_0x32e8cf]['name'],_0x5c0ed2[_0x32e8cf]['cron']);}else{manager[_0xe4c2('0x48')](_0x32e8cf);manager[_0xe4c2('0x49')](_0x32e8cf);logger[_0xe4c2('0xb')]('stop\x20cron',_0x5c0ed2[_0x32e8cf][_0xe4c2('0x11')],_0x5c0ed2[_0x32e8cf][_0xe4c2('0x4f')]);}}}})[_0xe4c2('0x2d')](function(_0x20cf9a){logger[_0xe4c2('0x29')](JSON[_0xe4c2('0x2b')](_0x20cf9a));});}exports[_0xe4c2('0x5a')]=function(_0xc8ea5b){return getJobs(_0xc8ea5b);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};