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 _0x4fe7=['stop','delete\x20cron','toRun','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','start','add\x20cron','deleteJob','stop\x20cron','update','update\x20cron','run','path','lodash','bluebird','../logger','../../mysqldb','client','info','Try\x20to\x20send\x20a\x20mail\x20to','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','format','\x22%s\x22\x20<%s>','email','bcc','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','status','Sent','message','attachments','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','request','SendMail','then','error','error\x20mail','email\x20sent','catch','stringify','isNil','subtractNumber','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','name','DefaultReportId','runReport','exec\x20custom\x20report\x20id:%s','CustomReportId','no\x20report\x20id','Schedule','findAll','jobs','map','toString','difference','length','exists'];(function(_0x5004e8,_0xdcd96b){var _0x27987a=function(_0x111a43){while(--_0x111a43){_0x5004e8['push'](_0x5004e8['shift']());}};_0x27987a(++_0xdcd96b);}(_0x4fe7,0xbe));var _0x74fe=function(_0x15545f,_0x232f3a){_0x15545f=_0x15545f-0x0;var _0xf1f93c=_0x4fe7[_0x15545f];return _0xf1f93c;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0x74fe('0x0'));var _=require(_0x74fe('0x1'));var moment=require('moment');var CronJobManager=require('cron-job-manager');var jayson=require('jayson/promise');var BPromise=require(_0x74fe('0x2'));var logger=require(_0x74fe('0x3'))('schedule');var db=require(_0x74fe('0x4'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x74fe('0x5')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4b3f93,_0x59d65a){return function(){logger[_0x74fe('0x6')](_0x74fe('0x7'),_0x4b3f93['email']);var _0x527a9e=!![];var _0x5e1caf={'tls':{'rejectUnauthorized':![]}};if(_0x4b3f93[_0x74fe('0x8')][_0x74fe('0x9')]['service']){_0x5e1caf['service']=_0x4b3f93[_0x74fe('0x8')][_0x74fe('0x9')][_0x74fe('0xa')];}else{_0x5e1caf[_0x74fe('0xb')]=_0x4b3f93[_0x74fe('0x8')]['Smtp'][_0x74fe('0xb')];_0x5e1caf[_0x74fe('0xc')]=_0x4b3f93[_0x74fe('0x8')][_0x74fe('0x9')][_0x74fe('0xc')];_0x5e1caf['secure']=_0x4b3f93[_0x74fe('0x8')][_0x74fe('0x9')][_0x74fe('0xd')];}if(_0x4b3f93[_0x74fe('0x8')]['Smtp'][_0x74fe('0xe')]){_0x5e1caf[_0x74fe('0xf')]={'user':_0x4b3f93[_0x74fe('0x8')][_0x74fe('0x9')][_0x74fe('0x10')],'pass':_0x4b3f93[_0x74fe('0x8')][_0x74fe('0x9')]['pass']};}var _0x51ebb9={'account':_0x5e1caf,'message':{'from':util[_0x74fe('0x11')](_0x74fe('0x12'),_0x4b3f93[_0x74fe('0x8')]['name'],_0x4b3f93['MailAccount'][_0x74fe('0x13')]||_0x4b3f93['MailAccount'][_0x74fe('0x9')][_0x74fe('0x10')]),'to':_0x4b3f93['email'],'cc':_0x4b3f93['cc'],'bcc':_0x4b3f93[_0x74fe('0x14')],'subject':util['format']('Report\x20%s\x20last\x20%s\x20%s',_0x59d65a['name'],_0x4b3f93['subtractNumber'],_0x4b3f93[_0x74fe('0x15')])}};var _0x1512f0=path[_0x74fe('0x16')](__dirname,_0x74fe('0x17'));var _0x6be0dd=_0x59d65a[_0x74fe('0x18')];var _0x55204e=util[_0x74fe('0x11')](_0x74fe('0x19'),path[_0x74fe('0x1a')](_0x59d65a[_0x74fe('0x18')],path[_0x74fe('0x1b')](_0x59d65a[_0x74fe('0x18')])),_0x74fe('0x1c'));var _0x420536=path['join'](_0x1512f0,_0x6be0dd);var _0x183fd9=path[_0x74fe('0x16')](_0x1512f0,_0x55204e);if(fs[_0x74fe('0x1d')](_0x420536)){_0x59d65a[_0x74fe('0x1e')]=_0x74fe('0x1f');_0x51ebb9[_0x74fe('0x20')][_0x74fe('0x21')]=[{'filename':_0x6be0dd,'path':_0x420536}];_0x51ebb9[_0x74fe('0x20')][_0x74fe('0x22')]=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['stringify'](_0x59d65a,null,0x2));}else if(fs[_0x74fe('0x1d')](_0x183fd9)){_0x59d65a['status']=_0x74fe('0x1f');_0x51ebb9[_0x74fe('0x20')][_0x74fe('0x21')]=[{'filename':_0x55204e,'path':_0x183fd9}];}else{_0x51ebb9['message']['text']=_0x74fe('0x23');if(!_0x4b3f93[_0x74fe('0x24')]){_0x527a9e=![];logger[_0x74fe('0x6')](_0x74fe('0x25'));}}if(_0x527a9e){return client[_0x74fe('0x26')](_0x74fe('0x27'),_0x51ebb9)[_0x74fe('0x28')](function(_0xd94dd7){if(_0xd94dd7[_0x74fe('0x29')]){return logger[_0x74fe('0x29')](_0x74fe('0x2a'),JSON['stringify'](_0xd94dd7));}return logger['info'](_0x74fe('0x2b'));})[_0x74fe('0x2c')](function(_0x3c99af){return logger[_0x74fe('0x29')](_0x74fe('0x2a'),JSON[_0x74fe('0x2d')](_0x3c99af));});}};}function handleError(){return function(_0x2f9d55){return logger[_0x74fe('0x29')](JSON[_0x74fe('0x2d')](_0x2f9d55));};}function handleResult(_0x3e66b1){return function(_0x26a62d){logger[_0x74fe('0x6')]('data',JSON[_0x74fe('0x2d')](_0x26a62d));if(_0x3e66b1['MailAccount']&&_0x3e66b1[_0x74fe('0x8')][_0x74fe('0x9')]&&!_[_0x74fe('0x2e')](_0x3e66b1[_0x74fe('0x13')])){setTimeout(handleSendEmail(_0x3e66b1,_0x26a62d),0x3c*0x3e8);}};}function handleJob(_0x5efbe7){return function(){try{if(_[_0x74fe('0x2e')](_0x5efbe7[_0x74fe('0x2f')])){return logger['info'](_0x74fe('0x30'));}if(_[_0x74fe('0x2e')](_0x5efbe7[_0x74fe('0x15')])){return logger['info'](_0x74fe('0x31'));}var _0x10a96c={'startDate':moment()[_0x74fe('0x32')](_0x5efbe7[_0x74fe('0x2f')],_0x5efbe7[_0x74fe('0x15')])[_0x74fe('0x11')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()['format'](_0x74fe('0x33')),'type':_0x74fe('0x34'),'output':_0x5efbe7[_0x74fe('0x35')],'name':_0x5efbe7[_0x74fe('0x36')]};if(!_[_0x74fe('0x2e')](_0x5efbe7['DefaultReportId'])){logger[_0x74fe('0x6')]('exec\x20defaul\x20report\x20id:%s',_0x5efbe7[_0x74fe('0x37')]);return analyticDefaultReportController[_0x74fe('0x38')]({'id':_0x5efbe7[_0x74fe('0x37')]},_0x10a96c)['then'](handleResult(_0x5efbe7))['catch'](handleError());}if(!_[_0x74fe('0x2e')](_0x5efbe7['CustomReportId'])){logger['info'](_0x74fe('0x39'),_0x5efbe7[_0x74fe('0x3a')]);return analyticCustomReportController[_0x74fe('0x38')]({'id':_0x5efbe7['CustomReportId']},_0x10a96c)[_0x74fe('0x28')](handleResult(_0x5efbe7))[_0x74fe('0x2c')](handleError());}}catch(_0x40939c){logger['error'](JSON['stringify'](_0x40939c));}return logger[_0x74fe('0x6')](_0x74fe('0x3b'));};}function getJobs(_0x1064b0){var _0xe26504={};if(_0x1064b0){_0xe26504['id']=_0x1064b0;}return db[_0x74fe('0x3c')][_0x74fe('0x3d')]({'where':_0xe26504,'include':[{'model':db['MailAccount'],'attributes':['id',_0x74fe('0x36'),_0x74fe('0x13')],'include':[{'model':db['MailServerOut'],'as':'Smtp'}]}]})[_0x74fe('0x28')](function(_0x51c149){var _0x1ace3c=_['keys'](manager[_0x74fe('0x3e')]);var _0x23932c=_[_0x74fe('0x3f')](_0x51c149,function(_0x2c66d7){return _0x2c66d7['id'][_0x74fe('0x40')]();});var _0x2108c6=_['keyBy'](_0x51c149,function(_0x1fd0f6){return _0x1fd0f6['id']['toString']();});var _0x226b42=_0x1064b0?_0x23932c:_['difference'](_0x23932c,_0x1ace3c);var _0x2d77d0=_['intersection'](_0x23932c,_0x1ace3c);var _0x23c841=_[_0x74fe('0x41')](_0x1ace3c,_0x23932c);var _0x5dfd6f;var _0x44cf44;for(_0x5dfd6f=0x0;_0x5dfd6f<_0x23c841[_0x74fe('0x42')]&&!_0x1064b0;_0x5dfd6f+=0x1){_0x44cf44=_0x23c841[_0x5dfd6f][_0x74fe('0x40')]();if(manager[_0x74fe('0x43')](_0x44cf44)){manager[_0x74fe('0x44')](_0x44cf44);manager['deleteJob'](_0x44cf44);logger[_0x74fe('0x6')](_0x74fe('0x45'),_0x44cf44);}}logger['info'](_0x74fe('0x46'),JSON[_0x74fe('0x2d')](_0x226b42));for(_0x5dfd6f=0x0;_0x5dfd6f<_0x226b42['length'];_0x5dfd6f+=0x1){_0x44cf44=_0x226b42[_0x5dfd6f][_0x74fe('0x40')]();logger[_0x74fe('0x6')]('index',_0x44cf44);if(_0x1064b0){logger[_0x74fe('0x6')]('my\x20id',_0x1064b0);logger[_0x74fe('0x6')](JSON[_0x74fe('0x2d')](_0x2108c6[_0x44cf44]));BPromise[_0x74fe('0x47')]()[_0x74fe('0x28')](handleJob(_0x2108c6[_0x44cf44]));logger[_0x74fe('0x6')](_0x74fe('0x48'),_0x2108c6[_0x44cf44][_0x74fe('0x36')],_0x2108c6[_0x44cf44][_0x74fe('0x49')]);}else if(_0x2108c6[_0x44cf44][_0x74fe('0x49')]&&_0x2108c6[_0x44cf44][_0x74fe('0x4a')]&&moment()[_0x74fe('0x4b')](_0x2108c6[_0x44cf44][_0x74fe('0x4c')],_0x2108c6[_0x44cf44][_0x74fe('0x4d')])){manager[_0x74fe('0x4e')](_0x44cf44,_0x2108c6[_0x44cf44][_0x74fe('0x49')],handleJob(_0x2108c6[_0x44cf44]));manager[_0x74fe('0x4f')](_0x44cf44);logger[_0x74fe('0x6')](_0x74fe('0x50'),_0x2108c6[_0x44cf44][_0x74fe('0x36')],_0x2108c6[_0x44cf44]['cron']);}else if(manager[_0x74fe('0x43')](_0x44cf44)){manager[_0x74fe('0x44')](_0x44cf44);manager[_0x74fe('0x51')](_0x44cf44);logger['info'](_0x74fe('0x52'),_0x2108c6[_0x44cf44][_0x74fe('0x36')],_0x2108c6[_0x44cf44][_0x74fe('0x49')]);}}for(_0x5dfd6f=0x0,_0x44cf44;_0x5dfd6f<_0x2d77d0['length']&&!_0x1064b0;_0x5dfd6f+=0x1){_0x44cf44=_0x2d77d0[_0x5dfd6f][_0x74fe('0x40')]();if(manager[_0x74fe('0x43')](_0x44cf44)){if(_0x2108c6[_0x44cf44]['cron']&&_0x2108c6[_0x44cf44]['active']&&moment()[_0x74fe('0x4b')](_0x2108c6[_0x44cf44][_0x74fe('0x4c')],_0x2108c6[_0x44cf44][_0x74fe('0x4d')])){manager[_0x74fe('0x53')](_0x44cf44,_0x2108c6[_0x44cf44][_0x74fe('0x49')],handleJob(_0x2108c6[_0x44cf44]));logger[_0x74fe('0x6')](_0x74fe('0x54'),_0x2108c6[_0x44cf44]['name'],_0x2108c6[_0x44cf44][_0x74fe('0x49')]);}else{manager[_0x74fe('0x44')](_0x44cf44);manager['deleteJob'](_0x44cf44);logger['info'](_0x74fe('0x52'),_0x2108c6[_0x44cf44]['name'],_0x2108c6[_0x44cf44][_0x74fe('0x49')]);}}}})[_0x74fe('0x2c')](function(_0x1729e4){logger[_0x74fe('0x29')](JSON[_0x74fe('0x2d')](_0x1729e4));});}exports[_0x74fe('0x55')]=function(_0x3aca96){return getJobs(_0x3aca96);};exports[_0x74fe('0x4f')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};