Built motion from commit (unavailable).|2.5.30
[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 _0x3a03=['MailServerOut','then','keys','map','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','index','cron','active','isBetween','startAt','endAt','add','start','stop\x20cron','update','update\x20cron','run','util','path','cron-job-manager','jayson/promise','bluebird','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','service','MailAccount','host','port','secure','auth','user','pass','\x22%s\x22\x20<%s>','bcc','Report\x20%s\x20last\x20%s\x20%s','name','subtractNumber','subtractUnit','join','../../files/reports','%s.%s','basename','savename','extname','existsSync','status','Sent','message','attachments','text','format','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','empty\x20file,\x20email\x20not\x20sent','request','error','error\x20mail','email\x20sent','catch','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','CustomReportId','exec\x20custom\x20report\x20id:%s','runReport','stringify','Schedule','findAll'];(function(_0x19d60f,_0x568bfb){var _0x485ed5=function(_0x5e7eb2){while(--_0x5e7eb2){_0x19d60f['push'](_0x19d60f['shift']());}};_0x485ed5(++_0x568bfb);}(_0x3a03,0x12a));var _0x33a0=function(_0x54693e,_0x1bfc10){_0x54693e=_0x54693e-0x0;var _0x27787c=_0x3a03[_0x54693e];return _0x27787c;};'use strict';var fs=require('fs');var util=require(_0x33a0('0x0'));var path=require(_0x33a0('0x1'));var _=require('lodash');var moment=require('moment');var CronJobManager=require(_0x33a0('0x2'));var jayson=require(_0x33a0('0x3'));var BPromise=require(_0x33a0('0x4'));var logger=require(_0x33a0('0x5'))('schedule');var db=require(_0x33a0('0x6'))['db'];var analyticCustomReportController=require(_0x33a0('0x7'));var analyticDefaultReportController=require(_0x33a0('0x8'));var client=jayson[_0x33a0('0x9')][_0x33a0('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x41bb0e,_0x552c13){return function(){logger[_0x33a0('0xb')](_0x33a0('0xc'),_0x41bb0e[_0x33a0('0xd')]);var _0x526cff=!![];var _0x5c4223={'tls':{'rejectUnauthorized':![]}};if(_0x41bb0e['MailAccount'][_0x33a0('0xe')][_0x33a0('0xf')]){_0x5c4223[_0x33a0('0xf')]=_0x41bb0e[_0x33a0('0x10')][_0x33a0('0xe')][_0x33a0('0xf')];}else{_0x5c4223['host']=_0x41bb0e[_0x33a0('0x10')][_0x33a0('0xe')][_0x33a0('0x11')];_0x5c4223[_0x33a0('0x12')]=_0x41bb0e[_0x33a0('0x10')]['Smtp'][_0x33a0('0x12')];_0x5c4223[_0x33a0('0x13')]=_0x41bb0e[_0x33a0('0x10')][_0x33a0('0xe')][_0x33a0('0x13')];}if(_0x41bb0e['MailAccount'][_0x33a0('0xe')]['authentication']){_0x5c4223[_0x33a0('0x14')]={'user':_0x41bb0e[_0x33a0('0x10')][_0x33a0('0xe')][_0x33a0('0x15')],'pass':_0x41bb0e['MailAccount']['Smtp'][_0x33a0('0x16')]};}var _0x46aaef={'account':_0x5c4223,'message':{'from':util['format'](_0x33a0('0x17'),_0x41bb0e[_0x33a0('0x10')]['name'],_0x41bb0e['MailAccount'][_0x33a0('0xd')]||_0x41bb0e[_0x33a0('0x10')]['Smtp'][_0x33a0('0x15')]),'to':_0x41bb0e[_0x33a0('0xd')],'cc':_0x41bb0e['cc'],'bcc':_0x41bb0e[_0x33a0('0x18')],'subject':util['format'](_0x33a0('0x19'),_0x552c13[_0x33a0('0x1a')],_0x41bb0e[_0x33a0('0x1b')],_0x41bb0e[_0x33a0('0x1c')])}};var _0x49acbe=path[_0x33a0('0x1d')](__dirname,_0x33a0('0x1e'));var _0x3a07f1=_0x552c13['savename'];var _0xc79b9f=util['format'](_0x33a0('0x1f'),path[_0x33a0('0x20')](_0x552c13[_0x33a0('0x21')],path[_0x33a0('0x22')](_0x552c13[_0x33a0('0x21')])),'zip');var _0x23d989=path['join'](_0x49acbe,_0x3a07f1);var _0x2dbca8=path[_0x33a0('0x1d')](_0x49acbe,_0xc79b9f);if(fs[_0x33a0('0x23')](_0x23d989)){_0x552c13[_0x33a0('0x24')]=_0x33a0('0x25');_0x46aaef[_0x33a0('0x26')][_0x33a0('0x27')]=[{'filename':_0x3a07f1,'path':_0x23d989}];_0x46aaef[_0x33a0('0x26')][_0x33a0('0x28')]=util[_0x33a0('0x29')](_0x33a0('0x2a'),JSON['stringify'](_0x552c13,null,0x2));}else if(fs[_0x33a0('0x23')](_0x2dbca8)){_0x552c13[_0x33a0('0x24')]=_0x33a0('0x25');_0x46aaef['message']['attachments']=[{'filename':_0xc79b9f,'path':_0x2dbca8}];}else{_0x46aaef['message']['text']=_0x33a0('0x2b');if(!_0x41bb0e['sendIfEmpty']){_0x526cff=![];logger[_0x33a0('0xb')](_0x33a0('0x2c'));}}if(_0x526cff){return client[_0x33a0('0x2d')]('SendMail',_0x46aaef)['then'](function(_0x25d2d4){if(_0x25d2d4[_0x33a0('0x2e')]){return logger[_0x33a0('0x2e')](_0x33a0('0x2f'),JSON['stringify'](_0x25d2d4));}return logger[_0x33a0('0xb')](_0x33a0('0x30'));})[_0x33a0('0x31')](function(_0x21333f){return logger[_0x33a0('0x2e')](_0x33a0('0x2f'),JSON['stringify'](_0x21333f));});}};}function handleError(){return function(_0x28b006){return logger[_0x33a0('0x2e')](JSON['stringify'](_0x28b006));};}function handleResult(_0x52054e){return function(_0x56988f){logger[_0x33a0('0xb')](_0x33a0('0x32'),JSON['stringify'](_0x56988f));if(_0x52054e[_0x33a0('0x10')]&&_0x52054e[_0x33a0('0x10')][_0x33a0('0xe')]&&!_[_0x33a0('0x33')](_0x52054e[_0x33a0('0xd')])){setTimeout(handleSendEmail(_0x52054e,_0x56988f),0x3c*0x3e8);}};}function handleJob(_0x469cb8){return function(){try{if(_[_0x33a0('0x33')](_0x469cb8[_0x33a0('0x1b')])){return logger[_0x33a0('0xb')](_0x33a0('0x34'));}if(_[_0x33a0('0x33')](_0x469cb8[_0x33a0('0x1c')])){return logger[_0x33a0('0xb')](_0x33a0('0x35'));}var _0xb0088={'startDate':moment()[_0x33a0('0x36')](_0x469cb8[_0x33a0('0x1b')],_0x469cb8[_0x33a0('0x1c')])['format']('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0x33a0('0x29')](_0x33a0('0x37')),'type':_0x33a0('0x38'),'output':_0x469cb8[_0x33a0('0x39')],'name':_0x469cb8[_0x33a0('0x1a')]};if(!_[_0x33a0('0x33')](_0x469cb8[_0x33a0('0x3a')])){logger[_0x33a0('0xb')](_0x33a0('0x3b'),_0x469cb8[_0x33a0('0x3a')]);return analyticDefaultReportController['runReport']({'id':_0x469cb8[_0x33a0('0x3a')]},_0xb0088)['then'](handleResult(_0x469cb8))[_0x33a0('0x31')](handleError());}if(!_[_0x33a0('0x33')](_0x469cb8[_0x33a0('0x3c')])){logger[_0x33a0('0xb')](_0x33a0('0x3d'),_0x469cb8[_0x33a0('0x3c')]);return analyticCustomReportController[_0x33a0('0x3e')]({'id':_0x469cb8[_0x33a0('0x3c')]},_0xb0088)['then'](handleResult(_0x469cb8))[_0x33a0('0x31')](handleError());}}catch(_0x4520ef){logger[_0x33a0('0x2e')](JSON[_0x33a0('0x3f')](_0x4520ef));}return logger[_0x33a0('0xb')]('no\x20report\x20id');};}function getJobs(_0x331f0e){var _0x2cde92={};if(_0x331f0e){_0x2cde92['id']=_0x331f0e;}return db[_0x33a0('0x40')][_0x33a0('0x41')]({'where':_0x2cde92,'include':[{'model':db[_0x33a0('0x10')],'attributes':['id','name','email'],'include':[{'model':db[_0x33a0('0x42')],'as':_0x33a0('0xe')}]}]})[_0x33a0('0x43')](function(_0x53ee0c){var _0x13cf11=_[_0x33a0('0x44')](manager['jobs']);var _0x2eef60=_[_0x33a0('0x45')](_0x53ee0c,function(_0x560240){return _0x560240['id'][_0x33a0('0x46')]();});var _0x5cd6e5=_[_0x33a0('0x47')](_0x53ee0c,function(_0x3cad01){return _0x3cad01['id'][_0x33a0('0x46')]();});var _0x19c9d7=_0x331f0e?_0x2eef60:_[_0x33a0('0x48')](_0x2eef60,_0x13cf11);var _0xbdce30=_[_0x33a0('0x49')](_0x2eef60,_0x13cf11);var _0xbd6746=_[_0x33a0('0x48')](_0x13cf11,_0x2eef60);var _0x232a86;var _0xd14640;for(_0x232a86=0x0;_0x232a86<_0xbd6746[_0x33a0('0x4a')]&&!_0x331f0e;_0x232a86+=0x1){_0xd14640=_0xbd6746[_0x232a86][_0x33a0('0x46')]();if(manager[_0x33a0('0x4b')](_0xd14640)){manager[_0x33a0('0x4c')](_0xd14640);manager[_0x33a0('0x4d')](_0xd14640);logger[_0x33a0('0xb')](_0x33a0('0x4e'),_0xd14640);}}logger[_0x33a0('0xb')]('toRun',JSON[_0x33a0('0x3f')](_0x19c9d7));for(_0x232a86=0x0;_0x232a86<_0x19c9d7[_0x33a0('0x4a')];_0x232a86+=0x1){_0xd14640=_0x19c9d7[_0x232a86][_0x33a0('0x46')]();logger[_0x33a0('0xb')](_0x33a0('0x4f'),_0xd14640);if(_0x331f0e){logger[_0x33a0('0xb')]('my\x20id',_0x331f0e);logger[_0x33a0('0xb')](JSON[_0x33a0('0x3f')](_0x5cd6e5[_0xd14640]));BPromise['resolve']()['then'](handleJob(_0x5cd6e5[_0xd14640]));logger[_0x33a0('0xb')]('run\x20job',_0x5cd6e5[_0xd14640]['name'],_0x5cd6e5[_0xd14640][_0x33a0('0x50')]);}else if(_0x5cd6e5[_0xd14640][_0x33a0('0x50')]&&_0x5cd6e5[_0xd14640][_0x33a0('0x51')]&&moment()[_0x33a0('0x52')](_0x5cd6e5[_0xd14640][_0x33a0('0x53')],_0x5cd6e5[_0xd14640][_0x33a0('0x54')])){manager[_0x33a0('0x55')](_0xd14640,_0x5cd6e5[_0xd14640]['cron'],handleJob(_0x5cd6e5[_0xd14640]));manager[_0x33a0('0x56')](_0xd14640);logger[_0x33a0('0xb')]('add\x20cron',_0x5cd6e5[_0xd14640][_0x33a0('0x1a')],_0x5cd6e5[_0xd14640][_0x33a0('0x50')]);}else if(manager[_0x33a0('0x4b')](_0xd14640)){manager['stop'](_0xd14640);manager['deleteJob'](_0xd14640);logger[_0x33a0('0xb')](_0x33a0('0x57'),_0x5cd6e5[_0xd14640]['name'],_0x5cd6e5[_0xd14640]['cron']);}}for(_0x232a86=0x0,_0xd14640;_0x232a86<_0xbdce30[_0x33a0('0x4a')]&&!_0x331f0e;_0x232a86+=0x1){_0xd14640=_0xbdce30[_0x232a86][_0x33a0('0x46')]();if(manager['exists'](_0xd14640)){if(_0x5cd6e5[_0xd14640][_0x33a0('0x50')]&&_0x5cd6e5[_0xd14640]['active']&&moment()[_0x33a0('0x52')](_0x5cd6e5[_0xd14640][_0x33a0('0x53')],_0x5cd6e5[_0xd14640]['endAt'])){manager[_0x33a0('0x58')](_0xd14640,_0x5cd6e5[_0xd14640][_0x33a0('0x50')],handleJob(_0x5cd6e5[_0xd14640]));logger['info'](_0x33a0('0x59'),_0x5cd6e5[_0xd14640]['name'],_0x5cd6e5[_0xd14640][_0x33a0('0x50')]);}else{manager[_0x33a0('0x4c')](_0xd14640);manager['deleteJob'](_0xd14640);logger[_0x33a0('0xb')](_0x33a0('0x57'),_0x5cd6e5[_0xd14640][_0x33a0('0x1a')],_0x5cd6e5[_0xd14640][_0x33a0('0x50')]);}}}})[_0x33a0('0x31')](function(_0x41eb34){logger['error'](JSON['stringify'](_0x41eb34));});}exports[_0x33a0('0x5a')]=function(_0x3415d2){return getJobs(_0x3415d2);};exports[_0x33a0('0x56')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};