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 _0xb477=['deleteJob','delete\x20cron','toRun','index','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','add\x20cron','stop\x20cron','update','run','util','path','lodash','moment','jayson/promise','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','getSmtpOptions','format','\x22%s\x22\x20<%s>','name','user','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','../../files/reports','%s.%s','basename','extname','join','existsSync','status','Sent','message','text','stringify','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','SendMail','then','error','error\x20mail','email\x20sent','catch','Smtp','subtractNumber\x20null\x20or\x20undefined','isNil','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','output','DefaultReportId','runReport','CustomReportId','findAll','MailServerOut','keys','jobs','map','toString','keyBy','difference','intersection','length','exists','stop'];(function(_0x50dd7d,_0x12f7a5){var _0x7ff8ae=function(_0x4dbbdc){while(--_0x4dbbdc){_0x50dd7d['push'](_0x50dd7d['shift']());}};_0x7ff8ae(++_0x12f7a5);}(_0xb477,0xac));var _0x7b47=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0xb477[_0x4b055c];return _0x4b62bb;};'use strict';var fs=require('fs');var util=require(_0x7b47('0x0'));var path=require(_0x7b47('0x1'));var _=require(_0x7b47('0x2'));var moment=require(_0x7b47('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require(_0x7b47('0x4'));var BPromise=require('bluebird');var logger=require(_0x7b47('0x5'))('schedule');var db=require(_0x7b47('0x6'))['db'];var analyticCustomReportController=require(_0x7b47('0x7'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x7b47('0x8')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x369933,_0x1f3f89){return function(){logger[_0x7b47('0x9')](_0x7b47('0xa'),_0x369933[_0x7b47('0xb')]);var _0x1873b0=!![];var _0x392158=_0x369933[_0x7b47('0xc')][_0x7b47('0xd')]();var _0x7dafed={'account':_0x392158,'message':{'from':util[_0x7b47('0xe')](_0x7b47('0xf'),_0x369933['MailAccount'][_0x7b47('0x10')],_0x369933[_0x7b47('0xc')][_0x7b47('0xb')]||_0x369933[_0x7b47('0xc')]['Smtp'][_0x7b47('0x11')]),'to':_0x369933['email'],'cc':_0x369933['cc'],'bcc':_0x369933['bcc'],'subject':util[_0x7b47('0xe')](_0x7b47('0x12'),_0x1f3f89[_0x7b47('0x10')],_0x369933[_0x7b47('0x13')],_0x369933[_0x7b47('0x14')])}};var _0x4daa5d=path['join'](__dirname,_0x7b47('0x15'));var _0x36aade=_0x1f3f89['savename'];var _0x22f14b=util[_0x7b47('0xe')](_0x7b47('0x16'),path[_0x7b47('0x17')](_0x1f3f89['savename'],path[_0x7b47('0x18')](_0x1f3f89['savename'])),'zip');var _0x1b24f0=path[_0x7b47('0x19')](_0x4daa5d,_0x36aade);var _0x131087=path[_0x7b47('0x19')](_0x4daa5d,_0x22f14b);if(fs[_0x7b47('0x1a')](_0x1b24f0)){_0x1f3f89[_0x7b47('0x1b')]=_0x7b47('0x1c');_0x7dafed['message']['attachments']=[{'filename':_0x36aade,'path':_0x1b24f0}];_0x7dafed[_0x7b47('0x1d')][_0x7b47('0x1e')]=util[_0x7b47('0xe')]('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON[_0x7b47('0x1f')](_0x1f3f89,null,0x2));}else if(fs[_0x7b47('0x1a')](_0x131087)){_0x1f3f89['status']=_0x7b47('0x1c');_0x7dafed[_0x7b47('0x1d')]['attachments']=[{'filename':_0x22f14b,'path':_0x131087}];}else{_0x7dafed[_0x7b47('0x1d')]['text']='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x369933[_0x7b47('0x20')]){_0x1873b0=![];logger[_0x7b47('0x9')](_0x7b47('0x21'));}}if(_0x1873b0){return client['request'](_0x7b47('0x22'),_0x7dafed)[_0x7b47('0x23')](function(_0x21b337){if(_0x21b337['error']){return logger[_0x7b47('0x24')](_0x7b47('0x25'),JSON[_0x7b47('0x1f')](_0x21b337));}return logger[_0x7b47('0x9')](_0x7b47('0x26'));})[_0x7b47('0x27')](function(_0x26d93){return logger['error'](_0x7b47('0x25'),JSON[_0x7b47('0x1f')](_0x26d93));});}};}function handleError(){return function(_0x20d7b1){return logger[_0x7b47('0x24')](JSON['stringify'](_0x20d7b1));};}function handleResult(_0xdfdbb1){return function(_0x2875e){logger[_0x7b47('0x9')]('data',JSON['stringify'](_0x2875e));if(_0xdfdbb1[_0x7b47('0xc')]&&_0xdfdbb1['MailAccount'][_0x7b47('0x28')]&&!_['isNil'](_0xdfdbb1[_0x7b47('0xb')])){setTimeout(handleSendEmail(_0xdfdbb1,_0x2875e),0x3c*0x3e8);}};}function handleJob(_0x4bbea2){return function(){try{if(_['isNil'](_0x4bbea2[_0x7b47('0x13')])){return logger[_0x7b47('0x9')](_0x7b47('0x29'));}if(_[_0x7b47('0x2a')](_0x4bbea2[_0x7b47('0x14')])){return logger[_0x7b47('0x9')](_0x7b47('0x2b'));}var _0x2525ba={'startDate':moment()[_0x7b47('0x2c')](_0x4bbea2['subtractNumber'],_0x4bbea2[_0x7b47('0x14')])[_0x7b47('0xe')](_0x7b47('0x2d')),'endDate':moment()[_0x7b47('0xe')](_0x7b47('0x2d')),'type':'scheduled','output':_0x4bbea2[_0x7b47('0x2e')],'name':_0x4bbea2[_0x7b47('0x10')]};if(!_[_0x7b47('0x2a')](_0x4bbea2[_0x7b47('0x2f')])){logger[_0x7b47('0x9')]('exec\x20defaul\x20report\x20id:%s',_0x4bbea2['DefaultReportId']);return analyticDefaultReportController[_0x7b47('0x30')]({'id':_0x4bbea2[_0x7b47('0x2f')]},_0x2525ba)[_0x7b47('0x23')](handleResult(_0x4bbea2))[_0x7b47('0x27')](handleError());}if(!_[_0x7b47('0x2a')](_0x4bbea2['CustomReportId'])){logger[_0x7b47('0x9')]('exec\x20custom\x20report\x20id:%s',_0x4bbea2['CustomReportId']);return analyticCustomReportController['runReport']({'id':_0x4bbea2[_0x7b47('0x31')]},_0x2525ba)[_0x7b47('0x23')](handleResult(_0x4bbea2))[_0x7b47('0x27')](handleError());}}catch(_0x1ec947){logger[_0x7b47('0x24')](JSON['stringify'](_0x1ec947));}return logger['info']('no\x20report\x20id');};}function getJobs(_0x1100df){var _0xc30d72={};if(_0x1100df){_0xc30d72['id']=_0x1100df;}return db['Schedule'][_0x7b47('0x32')]({'where':_0xc30d72,'include':[{'model':db[_0x7b47('0xc')],'attributes':['id',_0x7b47('0x10'),_0x7b47('0xb')],'include':[{'model':db[_0x7b47('0x33')],'as':_0x7b47('0x28'),'include':[{'model':db['CloudProvider'],'as':'CloudProvider'}]}]}]})['then'](function(_0x11c991){var _0x3857ff=_[_0x7b47('0x34')](manager[_0x7b47('0x35')]);var _0x466417=_[_0x7b47('0x36')](_0x11c991,function(_0x530e81){return _0x530e81['id'][_0x7b47('0x37')]();});var _0x581941=_[_0x7b47('0x38')](_0x11c991,function(_0x1618e4){return _0x1618e4['id'][_0x7b47('0x37')]();});var _0x1cc17d=_0x1100df?_0x466417:_[_0x7b47('0x39')](_0x466417,_0x3857ff);var _0x51305e=_[_0x7b47('0x3a')](_0x466417,_0x3857ff);var _0x16b32e=_[_0x7b47('0x39')](_0x3857ff,_0x466417);var _0x3a6484;var _0xa32a71;for(_0x3a6484=0x0;_0x3a6484<_0x16b32e[_0x7b47('0x3b')]&&!_0x1100df;_0x3a6484+=0x1){_0xa32a71=_0x16b32e[_0x3a6484][_0x7b47('0x37')]();if(manager[_0x7b47('0x3c')](_0xa32a71)){manager[_0x7b47('0x3d')](_0xa32a71);manager[_0x7b47('0x3e')](_0xa32a71);logger['info'](_0x7b47('0x3f'),_0xa32a71);}}logger[_0x7b47('0x9')](_0x7b47('0x40'),JSON[_0x7b47('0x1f')](_0x1cc17d));for(_0x3a6484=0x0;_0x3a6484<_0x1cc17d[_0x7b47('0x3b')];_0x3a6484+=0x1){_0xa32a71=_0x1cc17d[_0x3a6484][_0x7b47('0x37')]();logger[_0x7b47('0x9')](_0x7b47('0x41'),_0xa32a71);if(_0x1100df){logger[_0x7b47('0x9')]('my\x20id',_0x1100df);logger['info'](JSON['stringify'](_0x581941[_0xa32a71]));BPromise[_0x7b47('0x42')]()[_0x7b47('0x23')](handleJob(_0x581941[_0xa32a71]));logger['info'](_0x7b47('0x43'),_0x581941[_0xa32a71]['name'],_0x581941[_0xa32a71][_0x7b47('0x44')]);}else if(_0x581941[_0xa32a71][_0x7b47('0x44')]&&_0x581941[_0xa32a71][_0x7b47('0x45')]&&moment()[_0x7b47('0x46')](_0x581941[_0xa32a71][_0x7b47('0x47')],_0x581941[_0xa32a71][_0x7b47('0x48')])){manager[_0x7b47('0x49')](_0xa32a71,_0x581941[_0xa32a71][_0x7b47('0x44')],handleJob(_0x581941[_0xa32a71]));manager['start'](_0xa32a71);logger[_0x7b47('0x9')](_0x7b47('0x4a'),_0x581941[_0xa32a71][_0x7b47('0x10')],_0x581941[_0xa32a71][_0x7b47('0x44')]);}else if(manager['exists'](_0xa32a71)){manager[_0x7b47('0x3d')](_0xa32a71);manager['deleteJob'](_0xa32a71);logger[_0x7b47('0x9')](_0x7b47('0x4b'),_0x581941[_0xa32a71][_0x7b47('0x10')],_0x581941[_0xa32a71][_0x7b47('0x44')]);}}for(_0x3a6484=0x0,_0xa32a71;_0x3a6484<_0x51305e['length']&&!_0x1100df;_0x3a6484+=0x1){_0xa32a71=_0x51305e[_0x3a6484][_0x7b47('0x37')]();if(manager[_0x7b47('0x3c')](_0xa32a71)){if(_0x581941[_0xa32a71][_0x7b47('0x44')]&&_0x581941[_0xa32a71][_0x7b47('0x45')]&&moment()['isBetween'](_0x581941[_0xa32a71][_0x7b47('0x47')],_0x581941[_0xa32a71][_0x7b47('0x48')])){manager[_0x7b47('0x4c')](_0xa32a71,_0x581941[_0xa32a71]['cron'],handleJob(_0x581941[_0xa32a71]));logger[_0x7b47('0x9')]('update\x20cron',_0x581941[_0xa32a71]['name'],_0x581941[_0xa32a71][_0x7b47('0x44')]);}else{manager[_0x7b47('0x3d')](_0xa32a71);manager[_0x7b47('0x3e')](_0xa32a71);logger[_0x7b47('0x9')](_0x7b47('0x4b'),_0x581941[_0xa32a71]['name'],_0x581941[_0xa32a71][_0x7b47('0x44')]);}}}})['catch'](function(_0x5cf65e){logger[_0x7b47('0x24')](JSON[_0x7b47('0x1f')](_0x5cf65e));});}exports[_0x7b47('0x4d')]=function(_0x13099e){return getJobs(_0x13099e);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};