2bd1a8c7c3569a83c4b2e93fdef89f5642562de7
[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 _0x7819=['subtractUnit','join','%s.%s','basename','extname','zip','existsSync','status','Sent','message','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','SendMail','error','error\x20mail','email\x20sent','catch','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','then','no\x20report\x20id','findAll','jobs','map','toString','keyBy','difference','intersection','length','deleteJob','delete\x20cron','toRun','my\x20id','resolve','cron','isBetween','startAt','endAt','add','add\x20cron','exists','stop','stop\x20cron','active','update','update\x20cron','run','start','util','lodash','moment','jayson/promise','bluebird','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','user','pass','format','\x22%s\x22\x20<%s>','name','subtractNumber'];(function(_0xb1b07d,_0x2c6bc3){var _0x2fba26=function(_0x200cd8){while(--_0x200cd8){_0xb1b07d['push'](_0xb1b07d['shift']());}};_0x2fba26(++_0x2c6bc3);}(_0x7819,0x142));var _0x9781=function(_0xdcc847,_0x5ef2d4){_0xdcc847=_0xdcc847-0x0;var _0x484238=_0x7819[_0xdcc847];return _0x484238;};'use strict';var fs=require('fs');var util=require(_0x9781('0x0'));var path=require('path');var _=require(_0x9781('0x1'));var moment=require(_0x9781('0x2'));var CronJobManager=require('cron-job-manager');var jayson=require(_0x9781('0x3'));var BPromise=require(_0x9781('0x4'));var logger=require('../logger')(_0x9781('0x5'));var db=require(_0x9781('0x6'))['db'];var analyticCustomReportController=require(_0x9781('0x7'));var analyticDefaultReportController=require(_0x9781('0x8'));var client=jayson['client'][_0x9781('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x255cd6,_0x5f425c){return function(){logger[_0x9781('0xa')](_0x9781('0xb'),_0x255cd6[_0x9781('0xc')]);var _0x227c2d=!![];var _0x8224b4={'tls':{'rejectUnauthorized':![]}};if(_0x255cd6[_0x9781('0xd')][_0x9781('0xe')]['service']){_0x8224b4['service']=_0x255cd6['MailAccount'][_0x9781('0xe')][_0x9781('0xf')];}else{_0x8224b4[_0x9781('0x10')]=_0x255cd6[_0x9781('0xd')]['Smtp'][_0x9781('0x10')];_0x8224b4[_0x9781('0x11')]=_0x255cd6[_0x9781('0xd')][_0x9781('0xe')]['port'];_0x8224b4[_0x9781('0x12')]=_0x255cd6[_0x9781('0xd')][_0x9781('0xe')][_0x9781('0x12')];}if(_0x255cd6['MailAccount'][_0x9781('0xe')][_0x9781('0x13')]){_0x8224b4['auth']={'user':_0x255cd6[_0x9781('0xd')]['Smtp'][_0x9781('0x14')],'pass':_0x255cd6['MailAccount']['Smtp'][_0x9781('0x15')]};}var _0x54fe78={'account':_0x8224b4,'message':{'from':util[_0x9781('0x16')](_0x9781('0x17'),_0x255cd6['MailAccount'][_0x9781('0x18')],_0x255cd6[_0x9781('0xd')][_0x9781('0xc')]||_0x255cd6['MailAccount']['Smtp']['user']),'to':_0x255cd6[_0x9781('0xc')],'cc':_0x255cd6['cc'],'bcc':_0x255cd6['bcc'],'subject':util[_0x9781('0x16')]('Report\x20%s\x20last\x20%s\x20%s',_0x5f425c[_0x9781('0x18')],_0x255cd6[_0x9781('0x19')],_0x255cd6[_0x9781('0x1a')])}};var _0x3cd243=path[_0x9781('0x1b')](__dirname,'../../files/reports');var _0x54c874=_0x5f425c['savename'];var _0x5dba2a=util[_0x9781('0x16')](_0x9781('0x1c'),path[_0x9781('0x1d')](_0x5f425c['savename'],path[_0x9781('0x1e')](_0x5f425c['savename'])),_0x9781('0x1f'));var _0x72f1d5=path[_0x9781('0x1b')](_0x3cd243,_0x54c874);var _0x51150b=path[_0x9781('0x1b')](_0x3cd243,_0x5dba2a);if(fs[_0x9781('0x20')](_0x72f1d5)){_0x5f425c[_0x9781('0x21')]=_0x9781('0x22');_0x54fe78[_0x9781('0x23')]['attachments']=[{'filename':_0x54c874,'path':_0x72f1d5}];_0x54fe78[_0x9781('0x23')][_0x9781('0x24')]=util[_0x9781('0x16')](_0x9781('0x25'),JSON[_0x9781('0x26')](_0x5f425c,null,0x2));}else if(fs[_0x9781('0x20')](_0x51150b)){_0x5f425c[_0x9781('0x21')]=_0x9781('0x22');_0x54fe78[_0x9781('0x23')]['attachments']=[{'filename':_0x5dba2a,'path':_0x51150b}];}else{_0x54fe78[_0x9781('0x23')][_0x9781('0x24')]='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x255cd6[_0x9781('0x27')]){_0x227c2d=![];logger[_0x9781('0xa')](_0x9781('0x28'));}}if(_0x227c2d){return client['request'](_0x9781('0x29'),_0x54fe78)['then'](function(_0x19baf0){if(_0x19baf0[_0x9781('0x2a')]){return logger[_0x9781('0x2a')](_0x9781('0x2b'),JSON[_0x9781('0x26')](_0x19baf0));}return logger[_0x9781('0xa')](_0x9781('0x2c'));})[_0x9781('0x2d')](function(_0x3034c5){return logger[_0x9781('0x2a')]('error\x20mail',JSON[_0x9781('0x26')](_0x3034c5));});}};}function handleError(){return function(_0x5c6e89){return logger[_0x9781('0x2a')](JSON[_0x9781('0x26')](_0x5c6e89));};}function handleResult(_0x3bf30c){return function(_0x3592d8){logger[_0x9781('0xa')](_0x9781('0x2e'),JSON['stringify'](_0x3592d8));if(_0x3bf30c[_0x9781('0xd')]&&_0x3bf30c[_0x9781('0xd')][_0x9781('0xe')]&&!_[_0x9781('0x2f')](_0x3bf30c[_0x9781('0xc')])){setTimeout(handleSendEmail(_0x3bf30c,_0x3592d8),0x3c*0x3e8);}};}function handleJob(_0x534634){return function(){try{if(_[_0x9781('0x2f')](_0x534634[_0x9781('0x19')])){return logger['info'](_0x9781('0x30'));}if(_[_0x9781('0x2f')](_0x534634[_0x9781('0x1a')])){return logger[_0x9781('0xa')](_0x9781('0x31'));}var _0x2966cd={'startDate':moment()['subtract'](_0x534634[_0x9781('0x19')],_0x534634[_0x9781('0x1a')])[_0x9781('0x16')](_0x9781('0x32')),'endDate':moment()[_0x9781('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'type':_0x9781('0x33'),'output':_0x534634[_0x9781('0x34')],'name':_0x534634['name']};if(!_['isNil'](_0x534634[_0x9781('0x35')])){logger[_0x9781('0xa')](_0x9781('0x36'),_0x534634[_0x9781('0x35')]);return analyticDefaultReportController[_0x9781('0x37')]({'id':_0x534634['DefaultReportId']},_0x2966cd)['then'](handleResult(_0x534634))[_0x9781('0x2d')](handleError());}if(!_[_0x9781('0x2f')](_0x534634[_0x9781('0x38')])){logger[_0x9781('0xa')](_0x9781('0x39'),_0x534634[_0x9781('0x38')]);return analyticCustomReportController[_0x9781('0x37')]({'id':_0x534634['CustomReportId']},_0x2966cd)[_0x9781('0x3a')](handleResult(_0x534634))[_0x9781('0x2d')](handleError());}}catch(_0x2fd7a4){logger[_0x9781('0x2a')](JSON[_0x9781('0x26')](_0x2fd7a4));}return logger[_0x9781('0xa')](_0x9781('0x3b'));};}function getJobs(_0x53b098){var _0x1a8c47={};if(_0x53b098){_0x1a8c47['id']=_0x53b098;}return db['Schedule'][_0x9781('0x3c')]({'where':_0x1a8c47,'include':[{'model':db[_0x9781('0xd')],'attributes':['id',_0x9781('0x18'),_0x9781('0xc')],'include':[{'model':db['MailServerOut'],'as':_0x9781('0xe')}]}]})[_0x9781('0x3a')](function(_0x28b4a3){var _0x318b73=_['keys'](manager[_0x9781('0x3d')]);var _0x5c00ba=_[_0x9781('0x3e')](_0x28b4a3,function(_0x43dcb3){return _0x43dcb3['id'][_0x9781('0x3f')]();});var _0x1d14db=_[_0x9781('0x40')](_0x28b4a3,function(_0x420d59){return _0x420d59['id'][_0x9781('0x3f')]();});var _0x144f98=_0x53b098?_0x5c00ba:_[_0x9781('0x41')](_0x5c00ba,_0x318b73);var _0x52fc32=_[_0x9781('0x42')](_0x5c00ba,_0x318b73);var _0x31a9f5=_[_0x9781('0x41')](_0x318b73,_0x5c00ba);var _0x48ca22;var _0x38307a;for(_0x48ca22=0x0;_0x48ca22<_0x31a9f5[_0x9781('0x43')]&&!_0x53b098;_0x48ca22+=0x1){_0x38307a=_0x31a9f5[_0x48ca22]['toString']();if(manager['exists'](_0x38307a)){manager['stop'](_0x38307a);manager[_0x9781('0x44')](_0x38307a);logger['info'](_0x9781('0x45'),_0x38307a);}}logger['info'](_0x9781('0x46'),JSON['stringify'](_0x144f98));for(_0x48ca22=0x0;_0x48ca22<_0x144f98[_0x9781('0x43')];_0x48ca22+=0x1){_0x38307a=_0x144f98[_0x48ca22][_0x9781('0x3f')]();logger[_0x9781('0xa')]('index',_0x38307a);if(_0x53b098){logger[_0x9781('0xa')](_0x9781('0x47'),_0x53b098);logger['info'](JSON[_0x9781('0x26')](_0x1d14db[_0x38307a]));BPromise[_0x9781('0x48')]()[_0x9781('0x3a')](handleJob(_0x1d14db[_0x38307a]));logger[_0x9781('0xa')]('run\x20job',_0x1d14db[_0x38307a]['name'],_0x1d14db[_0x38307a][_0x9781('0x49')]);}else if(_0x1d14db[_0x38307a]['cron']&&_0x1d14db[_0x38307a]['active']&&moment()[_0x9781('0x4a')](_0x1d14db[_0x38307a][_0x9781('0x4b')],_0x1d14db[_0x38307a][_0x9781('0x4c')])){manager[_0x9781('0x4d')](_0x38307a,_0x1d14db[_0x38307a][_0x9781('0x49')],handleJob(_0x1d14db[_0x38307a]));manager['start'](_0x38307a);logger[_0x9781('0xa')](_0x9781('0x4e'),_0x1d14db[_0x38307a][_0x9781('0x18')],_0x1d14db[_0x38307a][_0x9781('0x49')]);}else if(manager[_0x9781('0x4f')](_0x38307a)){manager[_0x9781('0x50')](_0x38307a);manager[_0x9781('0x44')](_0x38307a);logger[_0x9781('0xa')](_0x9781('0x51'),_0x1d14db[_0x38307a]['name'],_0x1d14db[_0x38307a][_0x9781('0x49')]);}}for(_0x48ca22=0x0,_0x38307a;_0x48ca22<_0x52fc32[_0x9781('0x43')]&&!_0x53b098;_0x48ca22+=0x1){_0x38307a=_0x52fc32[_0x48ca22][_0x9781('0x3f')]();if(manager['exists'](_0x38307a)){if(_0x1d14db[_0x38307a][_0x9781('0x49')]&&_0x1d14db[_0x38307a][_0x9781('0x52')]&&moment()['isBetween'](_0x1d14db[_0x38307a][_0x9781('0x4b')],_0x1d14db[_0x38307a][_0x9781('0x4c')])){manager[_0x9781('0x53')](_0x38307a,_0x1d14db[_0x38307a]['cron'],handleJob(_0x1d14db[_0x38307a]));logger[_0x9781('0xa')](_0x9781('0x54'),_0x1d14db[_0x38307a][_0x9781('0x18')],_0x1d14db[_0x38307a][_0x9781('0x49')]);}else{manager[_0x9781('0x50')](_0x38307a);manager[_0x9781('0x44')](_0x38307a);logger[_0x9781('0xa')](_0x9781('0x51'),_0x1d14db[_0x38307a][_0x9781('0x18')],_0x1d14db[_0x38307a][_0x9781('0x49')]);}}}})['catch'](function(_0x4ebade){logger[_0x9781('0x2a')](JSON[_0x9781('0x26')](_0x4ebade));});}exports[_0x9781('0x55')]=function(_0x3325bd){return getJobs(_0x3325bd);};exports[_0x9781('0x56')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};