6fe7b5db7e19ef79e06ea7799923b930579299b3
[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 _0x9885=['deleteJob','delete\x20cron','toRun','index','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','start','add\x20cron','stop\x20cron','update','update\x20cron','catch','util','path','lodash','moment','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','auth','\x22%s\x22\x20<%s>','name','user','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','status','Sent','message','attachments','format','text','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','error','error\x20mail','email\x20sent','stringify','data','subtractNumber\x20null\x20or\x20undefined','isNil','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','then','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','MailServerOut','keys','jobs','map','keyBy','difference','length','toString','exists','stop'];(function(_0x1ed06f,_0x3fff32){var _0x148f6d=function(_0x4c08da){while(--_0x4c08da){_0x1ed06f['push'](_0x1ed06f['shift']());}};_0x148f6d(++_0x3fff32);}(_0x9885,0x129));var _0x5988=function(_0x36dd28,_0x2edc7b){_0x36dd28=_0x36dd28-0x0;var _0x42f025=_0x9885[_0x36dd28];return _0x42f025;};'use strict';var fs=require('fs');var util=require(_0x5988('0x0'));var path=require(_0x5988('0x1'));var _=require(_0x5988('0x2'));var moment=require(_0x5988('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require(_0x5988('0x4'));var BPromise=require(_0x5988('0x5'));var logger=require(_0x5988('0x6'))(_0x5988('0x7'));var db=require(_0x5988('0x8'))['db'];var analyticCustomReportController=require(_0x5988('0x9'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x5988('0xa')][_0x5988('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x29f570,_0x5c666c){return function(){logger[_0x5988('0xc')](_0x5988('0xd'),_0x29f570[_0x5988('0xe')]);var _0x3fccb7=!![];var _0x41598a={'tls':{'rejectUnauthorized':![]}};if(_0x29f570[_0x5988('0xf')][_0x5988('0x10')][_0x5988('0x11')]){_0x41598a[_0x5988('0x11')]=_0x29f570[_0x5988('0xf')]['Smtp'][_0x5988('0x11')];}else{_0x41598a[_0x5988('0x12')]=_0x29f570[_0x5988('0xf')][_0x5988('0x10')][_0x5988('0x12')];_0x41598a[_0x5988('0x13')]=_0x29f570[_0x5988('0xf')][_0x5988('0x10')]['port'];_0x41598a[_0x5988('0x14')]=_0x29f570[_0x5988('0xf')][_0x5988('0x10')][_0x5988('0x14')];}if(_0x29f570[_0x5988('0xf')]['Smtp'][_0x5988('0x15')]){_0x41598a[_0x5988('0x16')]={'user':_0x29f570[_0x5988('0xf')][_0x5988('0x10')]['user'],'pass':_0x29f570[_0x5988('0xf')][_0x5988('0x10')]['pass']};}var _0x4cdac4={'account':_0x41598a,'message':{'from':util['format'](_0x5988('0x17'),_0x29f570[_0x5988('0xf')][_0x5988('0x18')],_0x29f570['MailAccount'][_0x5988('0xe')]||_0x29f570[_0x5988('0xf')][_0x5988('0x10')][_0x5988('0x19')]),'to':_0x29f570[_0x5988('0xe')],'cc':_0x29f570['cc'],'bcc':_0x29f570['bcc'],'subject':util['format'](_0x5988('0x1a'),_0x5c666c[_0x5988('0x18')],_0x29f570[_0x5988('0x1b')],_0x29f570[_0x5988('0x1c')])}};var _0x2b979c=path[_0x5988('0x1d')](__dirname,_0x5988('0x1e'));var _0x31ba42=_0x5c666c[_0x5988('0x1f')];var _0x144899=util['format'](_0x5988('0x20'),path[_0x5988('0x21')](_0x5c666c['savename'],path[_0x5988('0x22')](_0x5c666c[_0x5988('0x1f')])),_0x5988('0x23'));var _0x4a096a=path['join'](_0x2b979c,_0x31ba42);var _0x24e704=path['join'](_0x2b979c,_0x144899);if(fs['existsSync'](_0x4a096a)){_0x5c666c[_0x5988('0x24')]=_0x5988('0x25');_0x4cdac4[_0x5988('0x26')][_0x5988('0x27')]=[{'filename':_0x31ba42,'path':_0x4a096a}];_0x4cdac4[_0x5988('0x26')]['text']=util[_0x5988('0x28')]('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'](_0x5c666c,null,0x2));}else if(fs['existsSync'](_0x24e704)){_0x5c666c[_0x5988('0x24')]=_0x5988('0x25');_0x4cdac4[_0x5988('0x26')]['attachments']=[{'filename':_0x144899,'path':_0x24e704}];}else{_0x4cdac4[_0x5988('0x26')][_0x5988('0x29')]=_0x5988('0x2a');if(!_0x29f570[_0x5988('0x2b')]){_0x3fccb7=![];logger[_0x5988('0xc')](_0x5988('0x2c'));}}if(_0x3fccb7){return client['request']('SendMail',_0x4cdac4)['then'](function(_0x52e81d){if(_0x52e81d[_0x5988('0x2d')]){return logger[_0x5988('0x2d')](_0x5988('0x2e'),JSON['stringify'](_0x52e81d));}return logger['info'](_0x5988('0x2f'));})['catch'](function(_0x3533d9){return logger[_0x5988('0x2d')](_0x5988('0x2e'),JSON[_0x5988('0x30')](_0x3533d9));});}};}function handleError(){return function(_0x159b7d){return logger[_0x5988('0x2d')](JSON[_0x5988('0x30')](_0x159b7d));};}function handleResult(_0xef7c71){return function(_0x47adbe){logger[_0x5988('0xc')](_0x5988('0x31'),JSON[_0x5988('0x30')](_0x47adbe));if(_0xef7c71[_0x5988('0xf')]&&_0xef7c71[_0x5988('0xf')][_0x5988('0x10')]&&!_['isNil'](_0xef7c71[_0x5988('0xe')])){setTimeout(handleSendEmail(_0xef7c71,_0x47adbe),0x3c*0x3e8);}};}function handleJob(_0x2a7425){return function(){try{if(_['isNil'](_0x2a7425['subtractNumber'])){return logger['info'](_0x5988('0x32'));}if(_[_0x5988('0x33')](_0x2a7425[_0x5988('0x1c')])){return logger[_0x5988('0xc')](_0x5988('0x34'));}var _0x1064e8={'startDate':moment()[_0x5988('0x35')](_0x2a7425[_0x5988('0x1b')],_0x2a7425[_0x5988('0x1c')])[_0x5988('0x28')](_0x5988('0x36')),'endDate':moment()[_0x5988('0x28')](_0x5988('0x36')),'type':_0x5988('0x37'),'output':_0x2a7425['output'],'name':_0x2a7425[_0x5988('0x18')]};if(!_[_0x5988('0x33')](_0x2a7425[_0x5988('0x38')])){logger[_0x5988('0xc')](_0x5988('0x39'),_0x2a7425[_0x5988('0x38')]);return analyticDefaultReportController[_0x5988('0x3a')]({'id':_0x2a7425[_0x5988('0x38')]},_0x1064e8)[_0x5988('0x3b')](handleResult(_0x2a7425))['catch'](handleError());}if(!_[_0x5988('0x33')](_0x2a7425[_0x5988('0x3c')])){logger[_0x5988('0xc')](_0x5988('0x3d'),_0x2a7425['CustomReportId']);return analyticCustomReportController[_0x5988('0x3a')]({'id':_0x2a7425[_0x5988('0x3c')]},_0x1064e8)[_0x5988('0x3b')](handleResult(_0x2a7425))['catch'](handleError());}}catch(_0x735483){logger[_0x5988('0x2d')](JSON[_0x5988('0x30')](_0x735483));}return logger[_0x5988('0xc')](_0x5988('0x3e'));};}function getJobs(_0x2f9d58){var _0x5fdfb6={};if(_0x2f9d58){_0x5fdfb6['id']=_0x2f9d58;}return db[_0x5988('0x3f')][_0x5988('0x40')]({'where':_0x5fdfb6,'include':[{'model':db[_0x5988('0xf')],'attributes':['id',_0x5988('0x18'),_0x5988('0xe')],'include':[{'model':db[_0x5988('0x41')],'as':_0x5988('0x10')}]}]})[_0x5988('0x3b')](function(_0x12f19f){var _0x567928=_[_0x5988('0x42')](manager[_0x5988('0x43')]);var _0x395311=_[_0x5988('0x44')](_0x12f19f,function(_0x29c1dd){return _0x29c1dd['id']['toString']();});var _0x47470b=_[_0x5988('0x45')](_0x12f19f,function(_0x51eab0){return _0x51eab0['id']['toString']();});var _0x5b26e3=_0x2f9d58?_0x395311:_[_0x5988('0x46')](_0x395311,_0x567928);var _0x3e1b00=_['intersection'](_0x395311,_0x567928);var _0x1d8623=_[_0x5988('0x46')](_0x567928,_0x395311);var _0x1f098d;var _0x198ad5;for(_0x1f098d=0x0;_0x1f098d<_0x1d8623[_0x5988('0x47')]&&!_0x2f9d58;_0x1f098d+=0x1){_0x198ad5=_0x1d8623[_0x1f098d][_0x5988('0x48')]();if(manager[_0x5988('0x49')](_0x198ad5)){manager[_0x5988('0x4a')](_0x198ad5);manager[_0x5988('0x4b')](_0x198ad5);logger['info'](_0x5988('0x4c'),_0x198ad5);}}logger['info'](_0x5988('0x4d'),JSON[_0x5988('0x30')](_0x5b26e3));for(_0x1f098d=0x0;_0x1f098d<_0x5b26e3[_0x5988('0x47')];_0x1f098d+=0x1){_0x198ad5=_0x5b26e3[_0x1f098d][_0x5988('0x48')]();logger[_0x5988('0xc')](_0x5988('0x4e'),_0x198ad5);if(_0x2f9d58){logger[_0x5988('0xc')]('my\x20id',_0x2f9d58);logger[_0x5988('0xc')](JSON[_0x5988('0x30')](_0x47470b[_0x198ad5]));BPromise[_0x5988('0x4f')]()[_0x5988('0x3b')](handleJob(_0x47470b[_0x198ad5]));logger[_0x5988('0xc')](_0x5988('0x50'),_0x47470b[_0x198ad5][_0x5988('0x18')],_0x47470b[_0x198ad5][_0x5988('0x51')]);}else if(_0x47470b[_0x198ad5][_0x5988('0x51')]&&_0x47470b[_0x198ad5][_0x5988('0x52')]&&moment()[_0x5988('0x53')](_0x47470b[_0x198ad5][_0x5988('0x54')],_0x47470b[_0x198ad5][_0x5988('0x55')])){manager[_0x5988('0x56')](_0x198ad5,_0x47470b[_0x198ad5][_0x5988('0x51')],handleJob(_0x47470b[_0x198ad5]));manager[_0x5988('0x57')](_0x198ad5);logger[_0x5988('0xc')](_0x5988('0x58'),_0x47470b[_0x198ad5][_0x5988('0x18')],_0x47470b[_0x198ad5]['cron']);}else if(manager[_0x5988('0x49')](_0x198ad5)){manager[_0x5988('0x4a')](_0x198ad5);manager[_0x5988('0x4b')](_0x198ad5);logger['info'](_0x5988('0x59'),_0x47470b[_0x198ad5][_0x5988('0x18')],_0x47470b[_0x198ad5][_0x5988('0x51')]);}}for(_0x1f098d=0x0,_0x198ad5;_0x1f098d<_0x3e1b00[_0x5988('0x47')]&&!_0x2f9d58;_0x1f098d+=0x1){_0x198ad5=_0x3e1b00[_0x1f098d][_0x5988('0x48')]();if(manager[_0x5988('0x49')](_0x198ad5)){if(_0x47470b[_0x198ad5][_0x5988('0x51')]&&_0x47470b[_0x198ad5][_0x5988('0x52')]&&moment()[_0x5988('0x53')](_0x47470b[_0x198ad5]['startAt'],_0x47470b[_0x198ad5][_0x5988('0x55')])){manager[_0x5988('0x5a')](_0x198ad5,_0x47470b[_0x198ad5][_0x5988('0x51')],handleJob(_0x47470b[_0x198ad5]));logger[_0x5988('0xc')](_0x5988('0x5b'),_0x47470b[_0x198ad5][_0x5988('0x18')],_0x47470b[_0x198ad5]['cron']);}else{manager[_0x5988('0x4a')](_0x198ad5);manager[_0x5988('0x4b')](_0x198ad5);logger[_0x5988('0xc')]('stop\x20cron',_0x47470b[_0x198ad5][_0x5988('0x18')],_0x47470b[_0x198ad5][_0x5988('0x51')]);}}}})[_0x5988('0x5c')](function(_0x123a54){logger[_0x5988('0x2d')](JSON[_0x5988('0x30')](_0x123a54));});}exports['run']=function(_0x339e0b){return getJobs(_0x339e0b);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};