Built motion from commit (unavailable).|2.5.25
[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 _0xdb62=['format','\x22%s\x22\x20<%s>','name','user','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','Sent','message','attachments','text','stringify','status','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','SendMail','error','catch','error\x20mail','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','then','no\x20report\x20id','findAll','MailServerOut','map','toString','intersection','length','exists','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','cron','active','isBetween','startAt','endAt','start','stop','stop\x20cron','update','update\x20cron','run','path','lodash','moment','cron-job-manager','jayson/promise','bluebird','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','auth'];(function(_0x3cc1d3,_0x1eab33){var _0x1c5042=function(_0x59a086){while(--_0x59a086){_0x3cc1d3['push'](_0x3cc1d3['shift']());}};_0x1c5042(++_0x1eab33);}(_0xdb62,0x9b));var _0x2db6=function(_0x4fd82a,_0x29d9d5){_0x4fd82a=_0x4fd82a-0x0;var _0x21d2a8=_0xdb62[_0x4fd82a];return _0x21d2a8;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0x2db6('0x0'));var _=require(_0x2db6('0x1'));var moment=require(_0x2db6('0x2'));var CronJobManager=require(_0x2db6('0x3'));var jayson=require(_0x2db6('0x4'));var BPromise=require(_0x2db6('0x5'));var logger=require('../logger')(_0x2db6('0x6'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x2db6('0x7'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x2db6('0x8')][_0x2db6('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4eeb98,_0x2f6c8f){return function(){logger[_0x2db6('0xa')](_0x2db6('0xb'),_0x4eeb98[_0x2db6('0xc')]);var _0x8670fe=!![];var _0x22b852={'tls':{'rejectUnauthorized':![]}};if(_0x4eeb98[_0x2db6('0xd')][_0x2db6('0xe')][_0x2db6('0xf')]){_0x22b852['service']=_0x4eeb98[_0x2db6('0xd')][_0x2db6('0xe')][_0x2db6('0xf')];}else{_0x22b852['host']=_0x4eeb98['MailAccount']['Smtp'][_0x2db6('0x10')];_0x22b852[_0x2db6('0x11')]=_0x4eeb98[_0x2db6('0xd')][_0x2db6('0xe')]['port'];_0x22b852['secure']=_0x4eeb98['MailAccount'][_0x2db6('0xe')][_0x2db6('0x12')];}if(_0x4eeb98['MailAccount'][_0x2db6('0xe')][_0x2db6('0x13')]){_0x22b852[_0x2db6('0x14')]={'user':_0x4eeb98[_0x2db6('0xd')]['Smtp']['user'],'pass':_0x4eeb98[_0x2db6('0xd')]['Smtp']['pass']};}var _0x500a5c={'account':_0x22b852,'message':{'from':util[_0x2db6('0x15')](_0x2db6('0x16'),_0x4eeb98[_0x2db6('0xd')][_0x2db6('0x17')],_0x4eeb98[_0x2db6('0xd')][_0x2db6('0xc')]||_0x4eeb98[_0x2db6('0xd')][_0x2db6('0xe')][_0x2db6('0x18')]),'to':_0x4eeb98['email'],'cc':_0x4eeb98['cc'],'bcc':_0x4eeb98[_0x2db6('0x19')],'subject':util[_0x2db6('0x15')](_0x2db6('0x1a'),_0x2f6c8f[_0x2db6('0x17')],_0x4eeb98[_0x2db6('0x1b')],_0x4eeb98[_0x2db6('0x1c')])}};var _0x3d0ee9=path[_0x2db6('0x1d')](__dirname,_0x2db6('0x1e'));var _0x27bb5d=_0x2f6c8f[_0x2db6('0x1f')];var _0x10046d=util[_0x2db6('0x15')](_0x2db6('0x20'),path[_0x2db6('0x21')](_0x2f6c8f[_0x2db6('0x1f')],path[_0x2db6('0x22')](_0x2f6c8f[_0x2db6('0x1f')])),_0x2db6('0x23'));var _0x46e692=path[_0x2db6('0x1d')](_0x3d0ee9,_0x27bb5d);var _0x5782d9=path[_0x2db6('0x1d')](_0x3d0ee9,_0x10046d);if(fs[_0x2db6('0x24')](_0x46e692)){_0x2f6c8f['status']=_0x2db6('0x25');_0x500a5c[_0x2db6('0x26')][_0x2db6('0x27')]=[{'filename':_0x27bb5d,'path':_0x46e692}];_0x500a5c[_0x2db6('0x26')][_0x2db6('0x28')]=util['format']('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON[_0x2db6('0x29')](_0x2f6c8f,null,0x2));}else if(fs['existsSync'](_0x5782d9)){_0x2f6c8f[_0x2db6('0x2a')]=_0x2db6('0x25');_0x500a5c[_0x2db6('0x26')][_0x2db6('0x27')]=[{'filename':_0x10046d,'path':_0x5782d9}];}else{_0x500a5c[_0x2db6('0x26')][_0x2db6('0x28')]=_0x2db6('0x2b');if(!_0x4eeb98[_0x2db6('0x2c')]){_0x8670fe=![];logger[_0x2db6('0xa')](_0x2db6('0x2d'));}}if(_0x8670fe){return client[_0x2db6('0x2e')](_0x2db6('0x2f'),_0x500a5c)['then'](function(_0xe62abe){if(_0xe62abe[_0x2db6('0x30')]){return logger[_0x2db6('0x30')]('error\x20mail',JSON[_0x2db6('0x29')](_0xe62abe));}return logger['info']('email\x20sent');})[_0x2db6('0x31')](function(_0x489e6b){return logger[_0x2db6('0x30')](_0x2db6('0x32'),JSON[_0x2db6('0x29')](_0x489e6b));});}};}function handleError(){return function(_0x4056d1){return logger[_0x2db6('0x30')](JSON['stringify'](_0x4056d1));};}function handleResult(_0x38eb14){return function(_0x2f669e){logger[_0x2db6('0xa')](_0x2db6('0x33'),JSON['stringify'](_0x2f669e));if(_0x38eb14[_0x2db6('0xd')]&&_0x38eb14[_0x2db6('0xd')][_0x2db6('0xe')]&&!_['isNil'](_0x38eb14['email'])){setTimeout(handleSendEmail(_0x38eb14,_0x2f669e),0x3c*0x3e8);}};}function handleJob(_0x54e04e){return function(){try{if(_[_0x2db6('0x34')](_0x54e04e[_0x2db6('0x1b')])){return logger[_0x2db6('0xa')](_0x2db6('0x35'));}if(_['isNil'](_0x54e04e[_0x2db6('0x1c')])){return logger[_0x2db6('0xa')](_0x2db6('0x36'));}var _0x46956f={'startDate':moment()[_0x2db6('0x37')](_0x54e04e['subtractNumber'],_0x54e04e['subtractUnit'])['format']('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0x2db6('0x15')](_0x2db6('0x38')),'type':'scheduled','output':_0x54e04e['output'],'name':_0x54e04e['name']};if(!_['isNil'](_0x54e04e['DefaultReportId'])){logger[_0x2db6('0xa')](_0x2db6('0x39'),_0x54e04e[_0x2db6('0x3a')]);return analyticDefaultReportController[_0x2db6('0x3b')]({'id':_0x54e04e['DefaultReportId']},_0x46956f)['then'](handleResult(_0x54e04e))[_0x2db6('0x31')](handleError());}if(!_[_0x2db6('0x34')](_0x54e04e[_0x2db6('0x3c')])){logger[_0x2db6('0xa')](_0x2db6('0x3d'),_0x54e04e[_0x2db6('0x3c')]);return analyticCustomReportController[_0x2db6('0x3b')]({'id':_0x54e04e[_0x2db6('0x3c')]},_0x46956f)[_0x2db6('0x3e')](handleResult(_0x54e04e))[_0x2db6('0x31')](handleError());}}catch(_0x144c45){logger['error'](JSON['stringify'](_0x144c45));}return logger[_0x2db6('0xa')](_0x2db6('0x3f'));};}function getJobs(_0x38dada){var _0xc807b4={};if(_0x38dada){_0xc807b4['id']=_0x38dada;}return db['Schedule'][_0x2db6('0x40')]({'where':_0xc807b4,'include':[{'model':db[_0x2db6('0xd')],'attributes':['id',_0x2db6('0x17'),_0x2db6('0xc')],'include':[{'model':db[_0x2db6('0x41')],'as':_0x2db6('0xe')}]}]})[_0x2db6('0x3e')](function(_0x1f344e){var _0x28693e=_['keys'](manager['jobs']);var _0x2000d9=_[_0x2db6('0x42')](_0x1f344e,function(_0x52b087){return _0x52b087['id'][_0x2db6('0x43')]();});var _0x1ffc02=_['keyBy'](_0x1f344e,function(_0x1d83ad){return _0x1d83ad['id'][_0x2db6('0x43')]();});var _0x5f0319=_0x38dada?_0x2000d9:_['difference'](_0x2000d9,_0x28693e);var _0x2bda0d=_[_0x2db6('0x44')](_0x2000d9,_0x28693e);var _0x4a00b7=_['difference'](_0x28693e,_0x2000d9);var _0x52c9b6;var _0x5e3474;for(_0x52c9b6=0x0;_0x52c9b6<_0x4a00b7[_0x2db6('0x45')]&&!_0x38dada;_0x52c9b6+=0x1){_0x5e3474=_0x4a00b7[_0x52c9b6][_0x2db6('0x43')]();if(manager[_0x2db6('0x46')](_0x5e3474)){manager['stop'](_0x5e3474);manager[_0x2db6('0x47')](_0x5e3474);logger['info'](_0x2db6('0x48'),_0x5e3474);}}logger[_0x2db6('0xa')](_0x2db6('0x49'),JSON['stringify'](_0x5f0319));for(_0x52c9b6=0x0;_0x52c9b6<_0x5f0319['length'];_0x52c9b6+=0x1){_0x5e3474=_0x5f0319[_0x52c9b6][_0x2db6('0x43')]();logger[_0x2db6('0xa')](_0x2db6('0x4a'),_0x5e3474);if(_0x38dada){logger[_0x2db6('0xa')](_0x2db6('0x4b'),_0x38dada);logger[_0x2db6('0xa')](JSON[_0x2db6('0x29')](_0x1ffc02[_0x5e3474]));BPromise[_0x2db6('0x4c')]()[_0x2db6('0x3e')](handleJob(_0x1ffc02[_0x5e3474]));logger['info']('run\x20job',_0x1ffc02[_0x5e3474][_0x2db6('0x17')],_0x1ffc02[_0x5e3474][_0x2db6('0x4d')]);}else if(_0x1ffc02[_0x5e3474][_0x2db6('0x4d')]&&_0x1ffc02[_0x5e3474][_0x2db6('0x4e')]&&moment()[_0x2db6('0x4f')](_0x1ffc02[_0x5e3474][_0x2db6('0x50')],_0x1ffc02[_0x5e3474][_0x2db6('0x51')])){manager['add'](_0x5e3474,_0x1ffc02[_0x5e3474]['cron'],handleJob(_0x1ffc02[_0x5e3474]));manager[_0x2db6('0x52')](_0x5e3474);logger[_0x2db6('0xa')]('add\x20cron',_0x1ffc02[_0x5e3474]['name'],_0x1ffc02[_0x5e3474][_0x2db6('0x4d')]);}else if(manager['exists'](_0x5e3474)){manager[_0x2db6('0x53')](_0x5e3474);manager[_0x2db6('0x47')](_0x5e3474);logger[_0x2db6('0xa')](_0x2db6('0x54'),_0x1ffc02[_0x5e3474]['name'],_0x1ffc02[_0x5e3474][_0x2db6('0x4d')]);}}for(_0x52c9b6=0x0,_0x5e3474;_0x52c9b6<_0x2bda0d[_0x2db6('0x45')]&&!_0x38dada;_0x52c9b6+=0x1){_0x5e3474=_0x2bda0d[_0x52c9b6][_0x2db6('0x43')]();if(manager[_0x2db6('0x46')](_0x5e3474)){if(_0x1ffc02[_0x5e3474][_0x2db6('0x4d')]&&_0x1ffc02[_0x5e3474][_0x2db6('0x4e')]&&moment()['isBetween'](_0x1ffc02[_0x5e3474][_0x2db6('0x50')],_0x1ffc02[_0x5e3474][_0x2db6('0x51')])){manager[_0x2db6('0x55')](_0x5e3474,_0x1ffc02[_0x5e3474][_0x2db6('0x4d')],handleJob(_0x1ffc02[_0x5e3474]));logger['info'](_0x2db6('0x56'),_0x1ffc02[_0x5e3474]['name'],_0x1ffc02[_0x5e3474][_0x2db6('0x4d')]);}else{manager[_0x2db6('0x53')](_0x5e3474);manager[_0x2db6('0x47')](_0x5e3474);logger[_0x2db6('0xa')](_0x2db6('0x54'),_0x1ffc02[_0x5e3474][_0x2db6('0x17')],_0x1ffc02[_0x5e3474][_0x2db6('0x4d')]);}}}})['catch'](function(_0x3a733c){logger[_0x2db6('0x30')](JSON[_0x2db6('0x29')](_0x3a733c));});}exports[_0x2db6('0x57')]=function(_0x5064da){return getJobs(_0x5064da);};exports[_0x2db6('0x52')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};