Built motion from commit (unavailable).|2.5.4
[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 _0x16f8=['YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport','then','exec\x20custom\x20report\x20id:%s','CustomReportId','no\x20report\x20id','findAll','MailServerOut','jobs','map','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','toRun','index','my\x20id','run\x20job','cron','active','isBetween','endAt','add','stop\x20cron','startAt','start','util','path','lodash','cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','user','pass','format','\x22%s\x22\x20<%s>','name','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','join','savename','%s.%s','basename','extname','Sent','message','attachments','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','text','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','SendMail','error','stringify','info','email\x20sent','catch','isNil','subtractUnit','subtractUnit\x20null\x20or\x20undefined','subtract'];(function(_0x27a29c,_0x31abe9){var _0x30cea4=function(_0x2371ad){while(--_0x2371ad){_0x27a29c['push'](_0x27a29c['shift']());}};_0x30cea4(++_0x31abe9);}(_0x16f8,0x7a));var _0x816f=function(_0x4c0998,_0x165050){_0x4c0998=_0x4c0998-0x0;var _0x1110e2=_0x16f8[_0x4c0998];return _0x1110e2;};'use strict';var fs=require('fs');var util=require(_0x816f('0x0'));var path=require(_0x816f('0x1'));var _=require(_0x816f('0x2'));var moment=require('moment');var CronJobManager=require(_0x816f('0x3'));var jayson=require(_0x816f('0x4'));var BPromise=require(_0x816f('0x5'));var logger=require(_0x816f('0x6'))(_0x816f('0x7'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x816f('0x8'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x816f('0x9')][_0x816f('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4103c1,_0x458513){return function(){logger['info'](_0x816f('0xb'),_0x4103c1[_0x816f('0xc')]);var _0x8e99a2=!![];var _0x54ede7={'tls':{'rejectUnauthorized':![]}};if(_0x4103c1[_0x816f('0xd')][_0x816f('0xe')]['service']){_0x54ede7[_0x816f('0xf')]=_0x4103c1['MailAccount'][_0x816f('0xe')][_0x816f('0xf')];}else{_0x54ede7[_0x816f('0x10')]=_0x4103c1[_0x816f('0xd')]['Smtp'][_0x816f('0x10')];_0x54ede7[_0x816f('0x11')]=_0x4103c1[_0x816f('0xd')][_0x816f('0xe')]['port'];_0x54ede7[_0x816f('0x12')]=_0x4103c1[_0x816f('0xd')][_0x816f('0xe')][_0x816f('0x12')];}if(_0x4103c1['MailAccount'][_0x816f('0xe')][_0x816f('0x13')]){_0x54ede7['auth']={'user':_0x4103c1[_0x816f('0xd')]['Smtp'][_0x816f('0x14')],'pass':_0x4103c1['MailAccount'][_0x816f('0xe')][_0x816f('0x15')]};}var _0x3ffb54={'account':_0x54ede7,'message':{'from':util[_0x816f('0x16')](_0x816f('0x17'),_0x4103c1[_0x816f('0xd')][_0x816f('0x18')],_0x4103c1[_0x816f('0xd')][_0x816f('0xc')]||_0x4103c1[_0x816f('0xd')][_0x816f('0xe')][_0x816f('0x14')]),'to':_0x4103c1[_0x816f('0xc')],'cc':_0x4103c1['cc'],'bcc':_0x4103c1['bcc'],'subject':util['format'](_0x816f('0x19'),_0x458513['name'],_0x4103c1[_0x816f('0x1a')],_0x4103c1['subtractUnit'])}};var _0x3ad761=path[_0x816f('0x1b')](__dirname,'../../files/reports');var _0x539ef9=_0x458513[_0x816f('0x1c')];var _0x5d7cff=util['format'](_0x816f('0x1d'),path[_0x816f('0x1e')](_0x458513['savename'],path[_0x816f('0x1f')](_0x458513[_0x816f('0x1c')])),'zip');var _0x379d96=path[_0x816f('0x1b')](_0x3ad761,_0x539ef9);var _0xabfffa=path[_0x816f('0x1b')](_0x3ad761,_0x5d7cff);if(fs['existsSync'](_0x379d96)){_0x458513['status']=_0x816f('0x20');_0x3ffb54[_0x816f('0x21')][_0x816f('0x22')]=[{'filename':_0x539ef9,'path':_0x379d96}];_0x3ffb54['message']['text']=util[_0x816f('0x16')](_0x816f('0x23'),JSON['stringify'](_0x458513,null,0x2));}else if(fs[_0x816f('0x24')](_0xabfffa)){_0x458513[_0x816f('0x25')]=_0x816f('0x20');_0x3ffb54['message'][_0x816f('0x22')]=[{'filename':_0x5d7cff,'path':_0xabfffa}];}else{_0x3ffb54[_0x816f('0x21')][_0x816f('0x26')]='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x4103c1[_0x816f('0x27')]){_0x8e99a2=![];logger['info'](_0x816f('0x28'));}}if(_0x8e99a2){return client[_0x816f('0x29')](_0x816f('0x2a'),_0x3ffb54)['then'](function(_0x5e387a){if(_0x5e387a[_0x816f('0x2b')]){return logger[_0x816f('0x2b')]('error\x20mail',JSON[_0x816f('0x2c')](_0x5e387a));}return logger[_0x816f('0x2d')](_0x816f('0x2e'));})[_0x816f('0x2f')](function(_0x5752c5){return logger[_0x816f('0x2b')]('error\x20mail',JSON[_0x816f('0x2c')](_0x5752c5));});}};}function handleError(){return function(_0x2eaf46){return logger['error'](JSON[_0x816f('0x2c')](_0x2eaf46));};}function handleResult(_0x565184){return function(_0x4cf44a){logger[_0x816f('0x2d')]('data',JSON[_0x816f('0x2c')](_0x4cf44a));if(_0x565184[_0x816f('0xd')]&&_0x565184[_0x816f('0xd')][_0x816f('0xe')]&&!_[_0x816f('0x30')](_0x565184['email'])){setTimeout(handleSendEmail(_0x565184,_0x4cf44a),0x3c*0x3e8);}};}function handleJob(_0x3cee2c){return function(){try{if(_[_0x816f('0x30')](_0x3cee2c[_0x816f('0x1a')])){return logger[_0x816f('0x2d')]('subtractNumber\x20null\x20or\x20undefined');}if(_[_0x816f('0x30')](_0x3cee2c[_0x816f('0x31')])){return logger[_0x816f('0x2d')](_0x816f('0x32'));}var _0xb1321c={'startDate':moment()[_0x816f('0x33')](_0x3cee2c[_0x816f('0x1a')],_0x3cee2c[_0x816f('0x31')])[_0x816f('0x16')](_0x816f('0x34')),'endDate':moment()[_0x816f('0x16')](_0x816f('0x34')),'type':_0x816f('0x35'),'output':_0x3cee2c[_0x816f('0x36')],'name':_0x3cee2c['name']};if(!_[_0x816f('0x30')](_0x3cee2c['DefaultReportId'])){logger['info'](_0x816f('0x37'),_0x3cee2c[_0x816f('0x38')]);return analyticDefaultReportController[_0x816f('0x39')]({'id':_0x3cee2c[_0x816f('0x38')]},_0xb1321c)[_0x816f('0x3a')](handleResult(_0x3cee2c))['catch'](handleError());}if(!_[_0x816f('0x30')](_0x3cee2c['CustomReportId'])){logger['info'](_0x816f('0x3b'),_0x3cee2c[_0x816f('0x3c')]);return analyticCustomReportController[_0x816f('0x39')]({'id':_0x3cee2c[_0x816f('0x3c')]},_0xb1321c)[_0x816f('0x3a')](handleResult(_0x3cee2c))[_0x816f('0x2f')](handleError());}}catch(_0x345261){logger[_0x816f('0x2b')](JSON[_0x816f('0x2c')](_0x345261));}return logger[_0x816f('0x2d')](_0x816f('0x3d'));};}function getJobs(_0x2c61bd){var _0x4c03cc={};if(_0x2c61bd){_0x4c03cc['id']=_0x2c61bd;}return db['Schedule'][_0x816f('0x3e')]({'where':_0x4c03cc,'include':[{'model':db[_0x816f('0xd')],'attributes':['id',_0x816f('0x18'),_0x816f('0xc')],'include':[{'model':db[_0x816f('0x3f')],'as':_0x816f('0xe')}]}]})[_0x816f('0x3a')](function(_0x132557){var _0x4ccf2c=_['keys'](manager[_0x816f('0x40')]);var _0x5a8a25=_[_0x816f('0x41')](_0x132557,function(_0x2fd821){return _0x2fd821['id'][_0x816f('0x42')]();});var _0xb96bd7=_[_0x816f('0x43')](_0x132557,function(_0x2b867a){return _0x2b867a['id']['toString']();});var _0xe5ccfb=_0x2c61bd?_0x5a8a25:_[_0x816f('0x44')](_0x5a8a25,_0x4ccf2c);var _0x25e9ef=_[_0x816f('0x45')](_0x5a8a25,_0x4ccf2c);var _0x10ea04=_[_0x816f('0x44')](_0x4ccf2c,_0x5a8a25);var _0x2c691d;var _0x11c363;for(_0x2c691d=0x0;_0x2c691d<_0x10ea04[_0x816f('0x46')]&&!_0x2c61bd;_0x2c691d+=0x1){_0x11c363=_0x10ea04[_0x2c691d][_0x816f('0x42')]();if(manager[_0x816f('0x47')](_0x11c363)){manager[_0x816f('0x48')](_0x11c363);manager[_0x816f('0x49')](_0x11c363);logger[_0x816f('0x2d')](_0x816f('0x4a'),_0x11c363);}}logger['info'](_0x816f('0x4b'),JSON[_0x816f('0x2c')](_0xe5ccfb));for(_0x2c691d=0x0;_0x2c691d<_0xe5ccfb[_0x816f('0x46')];_0x2c691d+=0x1){_0x11c363=_0xe5ccfb[_0x2c691d]['toString']();logger[_0x816f('0x2d')](_0x816f('0x4c'),_0x11c363);if(_0x2c61bd){logger[_0x816f('0x2d')](_0x816f('0x4d'),_0x2c61bd);logger['info'](JSON[_0x816f('0x2c')](_0xb96bd7[_0x11c363]));BPromise['resolve']()[_0x816f('0x3a')](handleJob(_0xb96bd7[_0x11c363]));logger[_0x816f('0x2d')](_0x816f('0x4e'),_0xb96bd7[_0x11c363][_0x816f('0x18')],_0xb96bd7[_0x11c363][_0x816f('0x4f')]);}else if(_0xb96bd7[_0x11c363][_0x816f('0x4f')]&&_0xb96bd7[_0x11c363][_0x816f('0x50')]&&moment()[_0x816f('0x51')](_0xb96bd7[_0x11c363]['startAt'],_0xb96bd7[_0x11c363][_0x816f('0x52')])){manager[_0x816f('0x53')](_0x11c363,_0xb96bd7[_0x11c363][_0x816f('0x4f')],handleJob(_0xb96bd7[_0x11c363]));manager['start'](_0x11c363);logger[_0x816f('0x2d')]('add\x20cron',_0xb96bd7[_0x11c363][_0x816f('0x18')],_0xb96bd7[_0x11c363][_0x816f('0x4f')]);}else if(manager[_0x816f('0x47')](_0x11c363)){manager[_0x816f('0x48')](_0x11c363);manager[_0x816f('0x49')](_0x11c363);logger[_0x816f('0x2d')](_0x816f('0x54'),_0xb96bd7[_0x11c363]['name'],_0xb96bd7[_0x11c363]['cron']);}}for(_0x2c691d=0x0,_0x11c363;_0x2c691d<_0x25e9ef[_0x816f('0x46')]&&!_0x2c61bd;_0x2c691d+=0x1){_0x11c363=_0x25e9ef[_0x2c691d]['toString']();if(manager[_0x816f('0x47')](_0x11c363)){if(_0xb96bd7[_0x11c363][_0x816f('0x4f')]&&_0xb96bd7[_0x11c363][_0x816f('0x50')]&&moment()[_0x816f('0x51')](_0xb96bd7[_0x11c363][_0x816f('0x55')],_0xb96bd7[_0x11c363][_0x816f('0x52')])){manager['update'](_0x11c363,_0xb96bd7[_0x11c363][_0x816f('0x4f')],handleJob(_0xb96bd7[_0x11c363]));logger['info']('update\x20cron',_0xb96bd7[_0x11c363][_0x816f('0x18')],_0xb96bd7[_0x11c363]['cron']);}else{manager[_0x816f('0x48')](_0x11c363);manager[_0x816f('0x49')](_0x11c363);logger[_0x816f('0x2d')](_0x816f('0x54'),_0xb96bd7[_0x11c363][_0x816f('0x18')],_0xb96bd7[_0x11c363]['cron']);}}}})[_0x816f('0x2f')](function(_0xa5c240){logger[_0x816f('0x2b')](JSON['stringify'](_0xa5c240));});}exports['run']=function(_0x2f23bb){return getJobs(_0x2f23bb);};exports[_0x816f('0x56')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};