Built motion from commit (unavailable).|2.5.21
[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 _0xe523=['info','Try\x20to\x20send\x20a\x20mail\x20to','MailAccount','Smtp','service','host','port','secure','authentication','pass','format','\x22%s\x22\x20<%s>','name','email','user','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','%s.%s','extname','savename','zip','existsSync','status','Sent','message','attachments','text','stringify','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','then','error','email\x20sent','error\x20mail','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','catch','no\x20report\x20id','Schedule','findAll','MailServerOut','keys','jobs','map','toString','keyBy','difference','intersection','length','exists','delete\x20cron','toRun','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','add\x20cron','stop','stop\x20cron','update','update\x20cron','run','start','util','path','moment','cron-job-manager','jayson/promise','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http'];(function(_0x8dcbc3,_0x549c35){var _0x496041=function(_0x4517de){while(--_0x4517de){_0x8dcbc3['push'](_0x8dcbc3['shift']());}};_0x496041(++_0x549c35);}(_0xe523,0xb0));var _0x3e52=function(_0x1e5818,_0x2fd582){_0x1e5818=_0x1e5818-0x0;var _0x10ba80=_0xe523[_0x1e5818];return _0x10ba80;};'use strict';var fs=require('fs');var util=require(_0x3e52('0x0'));var path=require(_0x3e52('0x1'));var _=require('lodash');var moment=require(_0x3e52('0x2'));var CronJobManager=require(_0x3e52('0x3'));var jayson=require(_0x3e52('0x4'));var BPromise=require('bluebird');var logger=require('../logger')(_0x3e52('0x5'));var db=require(_0x3e52('0x6'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0x3e52('0x7'));var client=jayson[_0x3e52('0x8')][_0x3e52('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4c0cf3,_0x51942c){return function(){logger[_0x3e52('0xa')](_0x3e52('0xb'),_0x4c0cf3['email']);var _0x48f6fc=!![];var _0x14cb58={'tls':{'rejectUnauthorized':![]}};if(_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0xd')][_0x3e52('0xe')]){_0x14cb58[_0x3e52('0xe')]=_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0xd')][_0x3e52('0xe')];}else{_0x14cb58[_0x3e52('0xf')]=_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0xd')]['host'];_0x14cb58[_0x3e52('0x10')]=_0x4c0cf3['MailAccount'][_0x3e52('0xd')][_0x3e52('0x10')];_0x14cb58[_0x3e52('0x11')]=_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0xd')][_0x3e52('0x11')];}if(_0x4c0cf3[_0x3e52('0xc')]['Smtp'][_0x3e52('0x12')]){_0x14cb58['auth']={'user':_0x4c0cf3['MailAccount'][_0x3e52('0xd')]['user'],'pass':_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0xd')][_0x3e52('0x13')]};}var _0x3a2d1a={'account':_0x14cb58,'message':{'from':util[_0x3e52('0x14')](_0x3e52('0x15'),_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0x16')],_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0x17')]||_0x4c0cf3[_0x3e52('0xc')][_0x3e52('0xd')][_0x3e52('0x18')]),'to':_0x4c0cf3[_0x3e52('0x17')],'cc':_0x4c0cf3['cc'],'bcc':_0x4c0cf3['bcc'],'subject':util[_0x3e52('0x14')](_0x3e52('0x19'),_0x51942c[_0x3e52('0x16')],_0x4c0cf3[_0x3e52('0x1a')],_0x4c0cf3[_0x3e52('0x1b')])}};var _0x45c696=path[_0x3e52('0x1c')](__dirname,'../../files/reports');var _0x30af85=_0x51942c['savename'];var _0x15ff4c=util[_0x3e52('0x14')](_0x3e52('0x1d'),path['basename'](_0x51942c['savename'],path[_0x3e52('0x1e')](_0x51942c[_0x3e52('0x1f')])),_0x3e52('0x20'));var _0x40b92e=path[_0x3e52('0x1c')](_0x45c696,_0x30af85);var _0x2dc1ce=path['join'](_0x45c696,_0x15ff4c);if(fs[_0x3e52('0x21')](_0x40b92e)){_0x51942c[_0x3e52('0x22')]=_0x3e52('0x23');_0x3a2d1a[_0x3e52('0x24')][_0x3e52('0x25')]=[{'filename':_0x30af85,'path':_0x40b92e}];_0x3a2d1a[_0x3e52('0x24')][_0x3e52('0x26')]=util[_0x3e52('0x14')]('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON[_0x3e52('0x27')](_0x51942c,null,0x2));}else if(fs[_0x3e52('0x21')](_0x2dc1ce)){_0x51942c['status']=_0x3e52('0x23');_0x3a2d1a[_0x3e52('0x24')][_0x3e52('0x25')]=[{'filename':_0x15ff4c,'path':_0x2dc1ce}];}else{_0x3a2d1a[_0x3e52('0x24')][_0x3e52('0x26')]=_0x3e52('0x28');if(!_0x4c0cf3[_0x3e52('0x29')]){_0x48f6fc=![];logger[_0x3e52('0xa')](_0x3e52('0x2a'));}}if(_0x48f6fc){return client[_0x3e52('0x2b')]('SendMail',_0x3a2d1a)[_0x3e52('0x2c')](function(_0xec6380){if(_0xec6380[_0x3e52('0x2d')]){return logger[_0x3e52('0x2d')]('error\x20mail',JSON[_0x3e52('0x27')](_0xec6380));}return logger['info'](_0x3e52('0x2e'));})['catch'](function(_0xc55e4c){return logger[_0x3e52('0x2d')](_0x3e52('0x2f'),JSON['stringify'](_0xc55e4c));});}};}function handleError(){return function(_0x286767){return logger[_0x3e52('0x2d')](JSON[_0x3e52('0x27')](_0x286767));};}function handleResult(_0x5a9ebf){return function(_0xd511b0){logger['info'](_0x3e52('0x30'),JSON['stringify'](_0xd511b0));if(_0x5a9ebf[_0x3e52('0xc')]&&_0x5a9ebf[_0x3e52('0xc')][_0x3e52('0xd')]&&!_[_0x3e52('0x31')](_0x5a9ebf['email'])){setTimeout(handleSendEmail(_0x5a9ebf,_0xd511b0),0x3c*0x3e8);}};}function handleJob(_0x4aded8){return function(){try{if(_[_0x3e52('0x31')](_0x4aded8[_0x3e52('0x1a')])){return logger[_0x3e52('0xa')](_0x3e52('0x32'));}if(_[_0x3e52('0x31')](_0x4aded8[_0x3e52('0x1b')])){return logger['info'](_0x3e52('0x33'));}var _0x408fc9={'startDate':moment()[_0x3e52('0x34')](_0x4aded8[_0x3e52('0x1a')],_0x4aded8[_0x3e52('0x1b')])[_0x3e52('0x14')](_0x3e52('0x35')),'endDate':moment()[_0x3e52('0x14')](_0x3e52('0x35')),'type':_0x3e52('0x36'),'output':_0x4aded8[_0x3e52('0x37')],'name':_0x4aded8[_0x3e52('0x16')]};if(!_[_0x3e52('0x31')](_0x4aded8['DefaultReportId'])){logger[_0x3e52('0xa')](_0x3e52('0x38'),_0x4aded8[_0x3e52('0x39')]);return analyticDefaultReportController[_0x3e52('0x3a')]({'id':_0x4aded8[_0x3e52('0x39')]},_0x408fc9)['then'](handleResult(_0x4aded8))['catch'](handleError());}if(!_[_0x3e52('0x31')](_0x4aded8[_0x3e52('0x3b')])){logger[_0x3e52('0xa')](_0x3e52('0x3c'),_0x4aded8[_0x3e52('0x3b')]);return analyticCustomReportController['runReport']({'id':_0x4aded8[_0x3e52('0x3b')]},_0x408fc9)[_0x3e52('0x2c')](handleResult(_0x4aded8))[_0x3e52('0x3d')](handleError());}}catch(_0xc5e31b){logger[_0x3e52('0x2d')](JSON[_0x3e52('0x27')](_0xc5e31b));}return logger[_0x3e52('0xa')](_0x3e52('0x3e'));};}function getJobs(_0x465368){var _0x1ba432={};if(_0x465368){_0x1ba432['id']=_0x465368;}return db[_0x3e52('0x3f')][_0x3e52('0x40')]({'where':_0x1ba432,'include':[{'model':db[_0x3e52('0xc')],'attributes':['id',_0x3e52('0x16'),'email'],'include':[{'model':db[_0x3e52('0x41')],'as':_0x3e52('0xd')}]}]})[_0x3e52('0x2c')](function(_0x50389b){var _0x1c4691=_[_0x3e52('0x42')](manager[_0x3e52('0x43')]);var _0x13f386=_[_0x3e52('0x44')](_0x50389b,function(_0x24ab5f){return _0x24ab5f['id'][_0x3e52('0x45')]();});var _0x4df056=_[_0x3e52('0x46')](_0x50389b,function(_0x167d94){return _0x167d94['id'][_0x3e52('0x45')]();});var _0x274451=_0x465368?_0x13f386:_[_0x3e52('0x47')](_0x13f386,_0x1c4691);var _0x19c6b6=_[_0x3e52('0x48')](_0x13f386,_0x1c4691);var _0x17d044=_[_0x3e52('0x47')](_0x1c4691,_0x13f386);var _0x607750;var _0x33d37e;for(_0x607750=0x0;_0x607750<_0x17d044[_0x3e52('0x49')]&&!_0x465368;_0x607750+=0x1){_0x33d37e=_0x17d044[_0x607750][_0x3e52('0x45')]();if(manager[_0x3e52('0x4a')](_0x33d37e)){manager['stop'](_0x33d37e);manager['deleteJob'](_0x33d37e);logger[_0x3e52('0xa')](_0x3e52('0x4b'),_0x33d37e);}}logger[_0x3e52('0xa')](_0x3e52('0x4c'),JSON[_0x3e52('0x27')](_0x274451));for(_0x607750=0x0;_0x607750<_0x274451[_0x3e52('0x49')];_0x607750+=0x1){_0x33d37e=_0x274451[_0x607750][_0x3e52('0x45')]();logger['info']('index',_0x33d37e);if(_0x465368){logger[_0x3e52('0xa')](_0x3e52('0x4d'),_0x465368);logger[_0x3e52('0xa')](JSON['stringify'](_0x4df056[_0x33d37e]));BPromise[_0x3e52('0x4e')]()[_0x3e52('0x2c')](handleJob(_0x4df056[_0x33d37e]));logger['info'](_0x3e52('0x4f'),_0x4df056[_0x33d37e][_0x3e52('0x16')],_0x4df056[_0x33d37e][_0x3e52('0x50')]);}else if(_0x4df056[_0x33d37e][_0x3e52('0x50')]&&_0x4df056[_0x33d37e][_0x3e52('0x51')]&&moment()[_0x3e52('0x52')](_0x4df056[_0x33d37e][_0x3e52('0x53')],_0x4df056[_0x33d37e][_0x3e52('0x54')])){manager[_0x3e52('0x55')](_0x33d37e,_0x4df056[_0x33d37e][_0x3e52('0x50')],handleJob(_0x4df056[_0x33d37e]));manager['start'](_0x33d37e);logger['info'](_0x3e52('0x56'),_0x4df056[_0x33d37e]['name'],_0x4df056[_0x33d37e][_0x3e52('0x50')]);}else if(manager['exists'](_0x33d37e)){manager[_0x3e52('0x57')](_0x33d37e);manager['deleteJob'](_0x33d37e);logger['info'](_0x3e52('0x58'),_0x4df056[_0x33d37e][_0x3e52('0x16')],_0x4df056[_0x33d37e]['cron']);}}for(_0x607750=0x0,_0x33d37e;_0x607750<_0x19c6b6[_0x3e52('0x49')]&&!_0x465368;_0x607750+=0x1){_0x33d37e=_0x19c6b6[_0x607750][_0x3e52('0x45')]();if(manager['exists'](_0x33d37e)){if(_0x4df056[_0x33d37e][_0x3e52('0x50')]&&_0x4df056[_0x33d37e][_0x3e52('0x51')]&&moment()[_0x3e52('0x52')](_0x4df056[_0x33d37e][_0x3e52('0x53')],_0x4df056[_0x33d37e][_0x3e52('0x54')])){manager[_0x3e52('0x59')](_0x33d37e,_0x4df056[_0x33d37e][_0x3e52('0x50')],handleJob(_0x4df056[_0x33d37e]));logger['info'](_0x3e52('0x5a'),_0x4df056[_0x33d37e][_0x3e52('0x16')],_0x4df056[_0x33d37e][_0x3e52('0x50')]);}else{manager[_0x3e52('0x57')](_0x33d37e);manager['deleteJob'](_0x33d37e);logger[_0x3e52('0xa')]('stop\x20cron',_0x4df056[_0x33d37e][_0x3e52('0x16')],_0x4df056[_0x33d37e]['cron']);}}}})[_0x3e52('0x3d')](function(_0x47af55){logger['error'](JSON[_0x3e52('0x27')](_0x47af55));});}exports[_0x3e52('0x5b')]=function(_0x205c11){return getJobs(_0x205c11);};exports[_0x3e52('0x5c')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};