84922cb6cbc52b00896e9455b1cff20f48b78ca6
[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 _0x1a1c=['MailServerOut','keys','map','keyBy','toString','difference','intersection','exists','stop','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','cron','isBetween','startAt','endAt','start','stop\x20cron','active','update','update\x20cron','run','path','lodash','cron-job-manager','jayson/promise','bluebird','schedule','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','service','MailAccount','host','port','secure','auth','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','join','../../files/reports','savename','basename','extname','zip','Sent','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','existsSync','status','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','stringify','email\x20sent','isNil','subtractUnit','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','Schedule','findAll'];(function(_0x48c2ae,_0x4cea90){var _0x8f7531=function(_0x126458){while(--_0x126458){_0x48c2ae['push'](_0x48c2ae['shift']());}};_0x8f7531(++_0x4cea90);}(_0x1a1c,0xc5));var _0xc1a1=function(_0x4c45fc,_0x203106){_0x4c45fc=_0x4c45fc-0x0;var _0x54b769=_0x1a1c[_0x4c45fc];return _0x54b769;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0xc1a1('0x0'));var _=require(_0xc1a1('0x1'));var moment=require('moment');var CronJobManager=require(_0xc1a1('0x2'));var jayson=require(_0xc1a1('0x3'));var BPromise=require(_0xc1a1('0x4'));var logger=require('../logger')(_0xc1a1('0x5'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0xc1a1('0x6'));var client=jayson[_0xc1a1('0x7')][_0xc1a1('0x8')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x3fdf65,_0x4bb3d7){return function(){logger[_0xc1a1('0x9')](_0xc1a1('0xa'),_0x3fdf65[_0xc1a1('0xb')]);var _0x1dd7df=!![];var _0x163a10={'tls':{'rejectUnauthorized':![]}};if(_0x3fdf65['MailAccount'][_0xc1a1('0xc')][_0xc1a1('0xd')]){_0x163a10[_0xc1a1('0xd')]=_0x3fdf65[_0xc1a1('0xe')][_0xc1a1('0xc')]['service'];}else{_0x163a10[_0xc1a1('0xf')]=_0x3fdf65['MailAccount'][_0xc1a1('0xc')][_0xc1a1('0xf')];_0x163a10['port']=_0x3fdf65['MailAccount'][_0xc1a1('0xc')][_0xc1a1('0x10')];_0x163a10[_0xc1a1('0x11')]=_0x3fdf65[_0xc1a1('0xe')][_0xc1a1('0xc')]['secure'];}if(_0x3fdf65[_0xc1a1('0xe')]['Smtp']['authentication']){_0x163a10[_0xc1a1('0x12')]={'user':_0x3fdf65[_0xc1a1('0xe')][_0xc1a1('0xc')][_0xc1a1('0x13')],'pass':_0x3fdf65[_0xc1a1('0xe')][_0xc1a1('0xc')][_0xc1a1('0x14')]};}var _0x3c8131={'account':_0x163a10,'message':{'from':util[_0xc1a1('0x15')](_0xc1a1('0x16'),_0x3fdf65['MailAccount'][_0xc1a1('0x17')],_0x3fdf65['MailAccount'][_0xc1a1('0xb')]||_0x3fdf65['MailAccount'][_0xc1a1('0xc')]['user']),'to':_0x3fdf65[_0xc1a1('0xb')],'cc':_0x3fdf65['cc'],'bcc':_0x3fdf65[_0xc1a1('0x18')],'subject':util['format'](_0xc1a1('0x19'),_0x4bb3d7['name'],_0x3fdf65[_0xc1a1('0x1a')],_0x3fdf65['subtractUnit'])}};var _0x2139e4=path[_0xc1a1('0x1b')](__dirname,_0xc1a1('0x1c'));var _0x3d3e0e=_0x4bb3d7[_0xc1a1('0x1d')];var _0x3c1a71=util['format']('%s.%s',path[_0xc1a1('0x1e')](_0x4bb3d7[_0xc1a1('0x1d')],path[_0xc1a1('0x1f')](_0x4bb3d7[_0xc1a1('0x1d')])),_0xc1a1('0x20'));var _0x3f1891=path[_0xc1a1('0x1b')](_0x2139e4,_0x3d3e0e);var _0xa1ff89=path['join'](_0x2139e4,_0x3c1a71);if(fs['existsSync'](_0x3f1891)){_0x4bb3d7['status']=_0xc1a1('0x21');_0x3c8131[_0xc1a1('0x22')][_0xc1a1('0x23')]=[{'filename':_0x3d3e0e,'path':_0x3f1891}];_0x3c8131[_0xc1a1('0x22')][_0xc1a1('0x24')]=util[_0xc1a1('0x15')](_0xc1a1('0x25'),JSON['stringify'](_0x4bb3d7,null,0x2));}else if(fs[_0xc1a1('0x26')](_0xa1ff89)){_0x4bb3d7[_0xc1a1('0x27')]=_0xc1a1('0x21');_0x3c8131['message']['attachments']=[{'filename':_0x3c1a71,'path':_0xa1ff89}];}else{_0x3c8131['message']['text']='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x3fdf65[_0xc1a1('0x28')]){_0x1dd7df=![];logger['info'](_0xc1a1('0x29'));}}if(_0x1dd7df){return client[_0xc1a1('0x2a')](_0xc1a1('0x2b'),_0x3c8131)[_0xc1a1('0x2c')](function(_0x5dbf9c){if(_0x5dbf9c[_0xc1a1('0x2d')]){return logger[_0xc1a1('0x2d')](_0xc1a1('0x2e'),JSON[_0xc1a1('0x2f')](_0x5dbf9c));}return logger[_0xc1a1('0x9')](_0xc1a1('0x30'));})['catch'](function(_0x21820e){return logger['error'](_0xc1a1('0x2e'),JSON['stringify'](_0x21820e));});}};}function handleError(){return function(_0x1bd7db){return logger['error'](JSON[_0xc1a1('0x2f')](_0x1bd7db));};}function handleResult(_0x4fb39f){return function(_0x1991f0){logger[_0xc1a1('0x9')]('data',JSON[_0xc1a1('0x2f')](_0x1991f0));if(_0x4fb39f[_0xc1a1('0xe')]&&_0x4fb39f[_0xc1a1('0xe')][_0xc1a1('0xc')]&&!_[_0xc1a1('0x31')](_0x4fb39f['email'])){setTimeout(handleSendEmail(_0x4fb39f,_0x1991f0),0x3c*0x3e8);}};}function handleJob(_0x145732){return function(){try{if(_[_0xc1a1('0x31')](_0x145732[_0xc1a1('0x1a')])){return logger[_0xc1a1('0x9')]('subtractNumber\x20null\x20or\x20undefined');}if(_['isNil'](_0x145732['subtractUnit'])){return logger[_0xc1a1('0x9')]('subtractUnit\x20null\x20or\x20undefined');}var _0x1c8020={'startDate':moment()['subtract'](_0x145732['subtractNumber'],_0x145732[_0xc1a1('0x32')])['format'](_0xc1a1('0x33')),'endDate':moment()[_0xc1a1('0x15')](_0xc1a1('0x33')),'type':_0xc1a1('0x34'),'output':_0x145732['output'],'name':_0x145732['name']};if(!_[_0xc1a1('0x31')](_0x145732[_0xc1a1('0x35')])){logger[_0xc1a1('0x9')](_0xc1a1('0x36'),_0x145732['DefaultReportId']);return analyticDefaultReportController[_0xc1a1('0x37')]({'id':_0x145732[_0xc1a1('0x35')]},_0x1c8020)['then'](handleResult(_0x145732))[_0xc1a1('0x38')](handleError());}if(!_[_0xc1a1('0x31')](_0x145732[_0xc1a1('0x39')])){logger[_0xc1a1('0x9')](_0xc1a1('0x3a'),_0x145732['CustomReportId']);return analyticCustomReportController['runReport']({'id':_0x145732[_0xc1a1('0x39')]},_0x1c8020)[_0xc1a1('0x2c')](handleResult(_0x145732))[_0xc1a1('0x38')](handleError());}}catch(_0x5213e3){logger[_0xc1a1('0x2d')](JSON['stringify'](_0x5213e3));}return logger[_0xc1a1('0x9')]('no\x20report\x20id');};}function getJobs(_0x3db6a7){var _0x4cfed8={};if(_0x3db6a7){_0x4cfed8['id']=_0x3db6a7;}return db[_0xc1a1('0x3b')][_0xc1a1('0x3c')]({'where':_0x4cfed8,'include':[{'model':db[_0xc1a1('0xe')],'attributes':['id',_0xc1a1('0x17'),_0xc1a1('0xb')],'include':[{'model':db[_0xc1a1('0x3d')],'as':_0xc1a1('0xc')}]}]})[_0xc1a1('0x2c')](function(_0x2a5ef9){var _0x5039f7=_[_0xc1a1('0x3e')](manager['jobs']);var _0x371658=_[_0xc1a1('0x3f')](_0x2a5ef9,function(_0x4d0feb){return _0x4d0feb['id']['toString']();});var _0x15f6a8=_[_0xc1a1('0x40')](_0x2a5ef9,function(_0x2c08ec){return _0x2c08ec['id'][_0xc1a1('0x41')]();});var _0x292083=_0x3db6a7?_0x371658:_[_0xc1a1('0x42')](_0x371658,_0x5039f7);var _0x28dd5b=_[_0xc1a1('0x43')](_0x371658,_0x5039f7);var _0x2baa55=_[_0xc1a1('0x42')](_0x5039f7,_0x371658);var _0x3b47b1;var _0x2bd8c8;for(_0x3b47b1=0x0;_0x3b47b1<_0x2baa55['length']&&!_0x3db6a7;_0x3b47b1+=0x1){_0x2bd8c8=_0x2baa55[_0x3b47b1]['toString']();if(manager[_0xc1a1('0x44')](_0x2bd8c8)){manager[_0xc1a1('0x45')](_0x2bd8c8);manager[_0xc1a1('0x46')](_0x2bd8c8);logger[_0xc1a1('0x9')](_0xc1a1('0x47'),_0x2bd8c8);}}logger['info'](_0xc1a1('0x48'),JSON['stringify'](_0x292083));for(_0x3b47b1=0x0;_0x3b47b1<_0x292083['length'];_0x3b47b1+=0x1){_0x2bd8c8=_0x292083[_0x3b47b1][_0xc1a1('0x41')]();logger[_0xc1a1('0x9')](_0xc1a1('0x49'),_0x2bd8c8);if(_0x3db6a7){logger[_0xc1a1('0x9')](_0xc1a1('0x4a'),_0x3db6a7);logger[_0xc1a1('0x9')](JSON[_0xc1a1('0x2f')](_0x15f6a8[_0x2bd8c8]));BPromise[_0xc1a1('0x4b')]()[_0xc1a1('0x2c')](handleJob(_0x15f6a8[_0x2bd8c8]));logger[_0xc1a1('0x9')]('run\x20job',_0x15f6a8[_0x2bd8c8][_0xc1a1('0x17')],_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4c')]);}else if(_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4c')]&&_0x15f6a8[_0x2bd8c8]['active']&&moment()[_0xc1a1('0x4d')](_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4e')],_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4f')])){manager['add'](_0x2bd8c8,_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4c')],handleJob(_0x15f6a8[_0x2bd8c8]));manager[_0xc1a1('0x50')](_0x2bd8c8);logger[_0xc1a1('0x9')]('add\x20cron',_0x15f6a8[_0x2bd8c8][_0xc1a1('0x17')],_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4c')]);}else if(manager[_0xc1a1('0x44')](_0x2bd8c8)){manager[_0xc1a1('0x45')](_0x2bd8c8);manager['deleteJob'](_0x2bd8c8);logger['info'](_0xc1a1('0x51'),_0x15f6a8[_0x2bd8c8][_0xc1a1('0x17')],_0x15f6a8[_0x2bd8c8]['cron']);}}for(_0x3b47b1=0x0,_0x2bd8c8;_0x3b47b1<_0x28dd5b['length']&&!_0x3db6a7;_0x3b47b1+=0x1){_0x2bd8c8=_0x28dd5b[_0x3b47b1][_0xc1a1('0x41')]();if(manager[_0xc1a1('0x44')](_0x2bd8c8)){if(_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4c')]&&_0x15f6a8[_0x2bd8c8][_0xc1a1('0x52')]&&moment()['isBetween'](_0x15f6a8[_0x2bd8c8]['startAt'],_0x15f6a8[_0x2bd8c8]['endAt'])){manager[_0xc1a1('0x53')](_0x2bd8c8,_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4c')],handleJob(_0x15f6a8[_0x2bd8c8]));logger['info'](_0xc1a1('0x54'),_0x15f6a8[_0x2bd8c8][_0xc1a1('0x17')],_0x15f6a8[_0x2bd8c8]['cron']);}else{manager[_0xc1a1('0x45')](_0x2bd8c8);manager[_0xc1a1('0x46')](_0x2bd8c8);logger[_0xc1a1('0x9')](_0xc1a1('0x51'),_0x15f6a8[_0x2bd8c8]['name'],_0x15f6a8[_0x2bd8c8][_0xc1a1('0x4c')]);}}}})[_0xc1a1('0x38')](function(_0x5ab4f8){logger[_0xc1a1('0x2d')](JSON[_0xc1a1('0x2f')](_0x5ab4f8));});}exports[_0xc1a1('0x55')]=function(_0x923a43){return getJobs(_0x923a43);};exports[_0xc1a1('0x50')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};