Built motion from commit (unavailable).|2.5.11
[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 _0x7a07=['CustomReportId','catch','no\x20report\x20id','Schedule','MailServerOut','jobs','map','toString','keyBy','difference','intersection','length','stop','deleteJob','delete\x20cron','toRun','index','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','add\x20cron','exists','stop\x20cron','update','update\x20cron','run','start','util','lodash','moment','cron-job-manager','jayson/promise','bluebird','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','message','text','status','attachments','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','info','empty\x20file,\x20email\x20not\x20sent','SendMail','then','error','error\x20mail','stringify','email\x20sent','isNil','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport'];(function(_0x45e3c2,_0x2d00bb){var _0x162fed=function(_0x5886f1){while(--_0x5886f1){_0x45e3c2['push'](_0x45e3c2['shift']());}};_0x162fed(++_0x2d00bb);}(_0x7a07,0x18c));var _0x77a0=function(_0x248cf7,_0x5c2fa8){_0x248cf7=_0x248cf7-0x0;var _0x46b3f5=_0x7a07[_0x248cf7];return _0x46b3f5;};'use strict';var fs=require('fs');var util=require(_0x77a0('0x0'));var path=require('path');var _=require(_0x77a0('0x1'));var moment=require(_0x77a0('0x2'));var CronJobManager=require(_0x77a0('0x3'));var jayson=require(_0x77a0('0x4'));var BPromise=require(_0x77a0('0x5'));var logger=require('../logger')('schedule');var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x77a0('0x6'));var analyticDefaultReportController=require(_0x77a0('0x7'));var client=jayson[_0x77a0('0x8')][_0x77a0('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x68f532,_0xe58e7e){return function(){logger['info'](_0x77a0('0xa'),_0x68f532[_0x77a0('0xb')]);var _0x35993e=!![];var _0x498f2a={'tls':{'rejectUnauthorized':![]}};if(_0x68f532[_0x77a0('0xc')][_0x77a0('0xd')][_0x77a0('0xe')]){_0x498f2a[_0x77a0('0xe')]=_0x68f532[_0x77a0('0xc')][_0x77a0('0xd')]['service'];}else{_0x498f2a[_0x77a0('0xf')]=_0x68f532[_0x77a0('0xc')][_0x77a0('0xd')]['host'];_0x498f2a[_0x77a0('0x10')]=_0x68f532[_0x77a0('0xc')][_0x77a0('0xd')]['port'];_0x498f2a[_0x77a0('0x11')]=_0x68f532[_0x77a0('0xc')]['Smtp'][_0x77a0('0x11')];}if(_0x68f532[_0x77a0('0xc')][_0x77a0('0xd')][_0x77a0('0x12')]){_0x498f2a[_0x77a0('0x13')]={'user':_0x68f532[_0x77a0('0xc')]['Smtp'][_0x77a0('0x14')],'pass':_0x68f532[_0x77a0('0xc')]['Smtp']['pass']};}var _0x394dc2={'account':_0x498f2a,'message':{'from':util[_0x77a0('0x15')](_0x77a0('0x16'),_0x68f532['MailAccount'][_0x77a0('0x17')],_0x68f532['MailAccount'][_0x77a0('0xb')]||_0x68f532[_0x77a0('0xc')][_0x77a0('0xd')][_0x77a0('0x14')]),'to':_0x68f532[_0x77a0('0xb')],'cc':_0x68f532['cc'],'bcc':_0x68f532[_0x77a0('0x18')],'subject':util[_0x77a0('0x15')](_0x77a0('0x19'),_0xe58e7e[_0x77a0('0x17')],_0x68f532[_0x77a0('0x1a')],_0x68f532[_0x77a0('0x1b')])}};var _0x1e0573=path[_0x77a0('0x1c')](__dirname,_0x77a0('0x1d'));var _0x358033=_0xe58e7e[_0x77a0('0x1e')];var _0xa6c3d5=util[_0x77a0('0x15')](_0x77a0('0x1f'),path[_0x77a0('0x20')](_0xe58e7e[_0x77a0('0x1e')],path[_0x77a0('0x21')](_0xe58e7e[_0x77a0('0x1e')])),_0x77a0('0x22'));var _0x36d241=path['join'](_0x1e0573,_0x358033);var _0x2ce149=path[_0x77a0('0x1c')](_0x1e0573,_0xa6c3d5);if(fs[_0x77a0('0x23')](_0x36d241)){_0xe58e7e['status']='Sent';_0x394dc2['message']['attachments']=[{'filename':_0x358033,'path':_0x36d241}];_0x394dc2[_0x77a0('0x24')][_0x77a0('0x25')]=util[_0x77a0('0x15')]('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON['stringify'](_0xe58e7e,null,0x2));}else if(fs[_0x77a0('0x23')](_0x2ce149)){_0xe58e7e[_0x77a0('0x26')]='Sent';_0x394dc2[_0x77a0('0x24')][_0x77a0('0x27')]=[{'filename':_0xa6c3d5,'path':_0x2ce149}];}else{_0x394dc2[_0x77a0('0x24')]['text']=_0x77a0('0x28');if(!_0x68f532[_0x77a0('0x29')]){_0x35993e=![];logger[_0x77a0('0x2a')](_0x77a0('0x2b'));}}if(_0x35993e){return client['request'](_0x77a0('0x2c'),_0x394dc2)[_0x77a0('0x2d')](function(_0x1b6e6c){if(_0x1b6e6c[_0x77a0('0x2e')]){return logger[_0x77a0('0x2e')](_0x77a0('0x2f'),JSON[_0x77a0('0x30')](_0x1b6e6c));}return logger[_0x77a0('0x2a')](_0x77a0('0x31'));})['catch'](function(_0x249897){return logger[_0x77a0('0x2e')](_0x77a0('0x2f'),JSON['stringify'](_0x249897));});}};}function handleError(){return function(_0x27dc27){return logger[_0x77a0('0x2e')](JSON['stringify'](_0x27dc27));};}function handleResult(_0x56aa05){return function(_0x23871d){logger[_0x77a0('0x2a')]('data',JSON['stringify'](_0x23871d));if(_0x56aa05['MailAccount']&&_0x56aa05['MailAccount'][_0x77a0('0xd')]&&!_[_0x77a0('0x32')](_0x56aa05['email'])){setTimeout(handleSendEmail(_0x56aa05,_0x23871d),0x3c*0x3e8);}};}function handleJob(_0x5aca5d){return function(){try{if(_[_0x77a0('0x32')](_0x5aca5d[_0x77a0('0x1a')])){return logger[_0x77a0('0x2a')]('subtractNumber\x20null\x20or\x20undefined');}if(_[_0x77a0('0x32')](_0x5aca5d['subtractUnit'])){return logger['info'](_0x77a0('0x33'));}var _0x161d27={'startDate':moment()[_0x77a0('0x34')](_0x5aca5d['subtractNumber'],_0x5aca5d[_0x77a0('0x1b')])[_0x77a0('0x15')](_0x77a0('0x35')),'endDate':moment()[_0x77a0('0x15')]('YYYY-MM-DD\x20HH:mm:ss'),'type':_0x77a0('0x36'),'output':_0x5aca5d[_0x77a0('0x37')],'name':_0x5aca5d['name']};if(!_[_0x77a0('0x32')](_0x5aca5d[_0x77a0('0x38')])){logger[_0x77a0('0x2a')](_0x77a0('0x39'),_0x5aca5d[_0x77a0('0x38')]);return analyticDefaultReportController[_0x77a0('0x3a')]({'id':_0x5aca5d[_0x77a0('0x38')]},_0x161d27)[_0x77a0('0x2d')](handleResult(_0x5aca5d))['catch'](handleError());}if(!_[_0x77a0('0x32')](_0x5aca5d['CustomReportId'])){logger[_0x77a0('0x2a')]('exec\x20custom\x20report\x20id:%s',_0x5aca5d['CustomReportId']);return analyticCustomReportController[_0x77a0('0x3a')]({'id':_0x5aca5d[_0x77a0('0x3b')]},_0x161d27)[_0x77a0('0x2d')](handleResult(_0x5aca5d))[_0x77a0('0x3c')](handleError());}}catch(_0x422ae0){logger['error'](JSON['stringify'](_0x422ae0));}return logger[_0x77a0('0x2a')](_0x77a0('0x3d'));};}function getJobs(_0x2ed1bc){var _0x198197={};if(_0x2ed1bc){_0x198197['id']=_0x2ed1bc;}return db[_0x77a0('0x3e')]['findAll']({'where':_0x198197,'include':[{'model':db['MailAccount'],'attributes':['id',_0x77a0('0x17'),_0x77a0('0xb')],'include':[{'model':db[_0x77a0('0x3f')],'as':_0x77a0('0xd')}]}]})[_0x77a0('0x2d')](function(_0x379493){var _0x279d7c=_['keys'](manager[_0x77a0('0x40')]);var _0x1ab615=_[_0x77a0('0x41')](_0x379493,function(_0x15537d){return _0x15537d['id'][_0x77a0('0x42')]();});var _0x2e507a=_[_0x77a0('0x43')](_0x379493,function(_0x768bfc){return _0x768bfc['id'][_0x77a0('0x42')]();});var _0x4dfafc=_0x2ed1bc?_0x1ab615:_[_0x77a0('0x44')](_0x1ab615,_0x279d7c);var _0x32ace2=_[_0x77a0('0x45')](_0x1ab615,_0x279d7c);var _0x23f68e=_[_0x77a0('0x44')](_0x279d7c,_0x1ab615);var _0xfac426;var _0xf2c5e2;for(_0xfac426=0x0;_0xfac426<_0x23f68e[_0x77a0('0x46')]&&!_0x2ed1bc;_0xfac426+=0x1){_0xf2c5e2=_0x23f68e[_0xfac426][_0x77a0('0x42')]();if(manager['exists'](_0xf2c5e2)){manager[_0x77a0('0x47')](_0xf2c5e2);manager[_0x77a0('0x48')](_0xf2c5e2);logger[_0x77a0('0x2a')](_0x77a0('0x49'),_0xf2c5e2);}}logger[_0x77a0('0x2a')](_0x77a0('0x4a'),JSON[_0x77a0('0x30')](_0x4dfafc));for(_0xfac426=0x0;_0xfac426<_0x4dfafc[_0x77a0('0x46')];_0xfac426+=0x1){_0xf2c5e2=_0x4dfafc[_0xfac426][_0x77a0('0x42')]();logger[_0x77a0('0x2a')](_0x77a0('0x4b'),_0xf2c5e2);if(_0x2ed1bc){logger[_0x77a0('0x2a')]('my\x20id',_0x2ed1bc);logger[_0x77a0('0x2a')](JSON[_0x77a0('0x30')](_0x2e507a[_0xf2c5e2]));BPromise[_0x77a0('0x4c')]()[_0x77a0('0x2d')](handleJob(_0x2e507a[_0xf2c5e2]));logger[_0x77a0('0x2a')](_0x77a0('0x4d'),_0x2e507a[_0xf2c5e2][_0x77a0('0x17')],_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')]);}else if(_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')]&&_0x2e507a[_0xf2c5e2][_0x77a0('0x4f')]&&moment()[_0x77a0('0x50')](_0x2e507a[_0xf2c5e2][_0x77a0('0x51')],_0x2e507a[_0xf2c5e2][_0x77a0('0x52')])){manager[_0x77a0('0x53')](_0xf2c5e2,_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')],handleJob(_0x2e507a[_0xf2c5e2]));manager['start'](_0xf2c5e2);logger[_0x77a0('0x2a')](_0x77a0('0x54'),_0x2e507a[_0xf2c5e2][_0x77a0('0x17')],_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')]);}else if(manager[_0x77a0('0x55')](_0xf2c5e2)){manager['stop'](_0xf2c5e2);manager[_0x77a0('0x48')](_0xf2c5e2);logger[_0x77a0('0x2a')](_0x77a0('0x56'),_0x2e507a[_0xf2c5e2]['name'],_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')]);}}for(_0xfac426=0x0,_0xf2c5e2;_0xfac426<_0x32ace2[_0x77a0('0x46')]&&!_0x2ed1bc;_0xfac426+=0x1){_0xf2c5e2=_0x32ace2[_0xfac426][_0x77a0('0x42')]();if(manager[_0x77a0('0x55')](_0xf2c5e2)){if(_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')]&&_0x2e507a[_0xf2c5e2]['active']&&moment()['isBetween'](_0x2e507a[_0xf2c5e2][_0x77a0('0x51')],_0x2e507a[_0xf2c5e2]['endAt'])){manager[_0x77a0('0x57')](_0xf2c5e2,_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')],handleJob(_0x2e507a[_0xf2c5e2]));logger[_0x77a0('0x2a')](_0x77a0('0x58'),_0x2e507a[_0xf2c5e2][_0x77a0('0x17')],_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')]);}else{manager[_0x77a0('0x47')](_0xf2c5e2);manager[_0x77a0('0x48')](_0xf2c5e2);logger[_0x77a0('0x2a')](_0x77a0('0x56'),_0x2e507a[_0xf2c5e2][_0x77a0('0x17')],_0x2e507a[_0xf2c5e2][_0x77a0('0x4e')]);}}}})['catch'](function(_0x60f35a){logger[_0x77a0('0x2e')](JSON['stringify'](_0x60f35a));});}exports[_0x77a0('0x59')]=function(_0x413d3a){return getJobs(_0x413d3a);};exports[_0x77a0('0x5a')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};