Built motion from commit (unavailable).|2.5.7
[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 _0x6e6a=['data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','then','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','findAll','MailServerOut','keys','jobs','map','toString','intersection','difference','length','stop','deleteJob','delete\x20cron','toRun','index','active','startAt','endAt','add','start','add\x20cron','cron','stop\x20cron','exists','update','update\x20cron','run','path','lodash','moment','cron-job-manager','bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','subtractNumber','subtractUnit','join','%s.%s','basename','extname','savename','zip','existsSync','status','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','message','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','error','error\x20mail','email\x20sent','catch'];(function(_0x298ab9,_0x278023){var _0x4c2c21=function(_0x158cd2){while(--_0x158cd2){_0x298ab9['push'](_0x298ab9['shift']());}};_0x4c2c21(++_0x278023);}(_0x6e6a,0x7d));var _0xa6e6=function(_0x3c9818,_0xf4372f){_0x3c9818=_0x3c9818-0x0;var _0x4c4c6a=_0x6e6a[_0x3c9818];return _0x4c4c6a;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0xa6e6('0x0'));var _=require(_0xa6e6('0x1'));var moment=require(_0xa6e6('0x2'));var CronJobManager=require(_0xa6e6('0x3'));var jayson=require('jayson/promise');var BPromise=require(_0xa6e6('0x4'));var logger=require(_0xa6e6('0x5'))(_0xa6e6('0x6'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0xa6e6('0x7'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0xa6e6('0x8')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0xed95ea,_0x5c7bea){return function(){logger[_0xa6e6('0x9')](_0xa6e6('0xa'),_0xed95ea[_0xa6e6('0xb')]);var _0x47432a=!![];var _0x3dc375={'tls':{'rejectUnauthorized':![]}};if(_0xed95ea[_0xa6e6('0xc')][_0xa6e6('0xd')]['service']){_0x3dc375[_0xa6e6('0xe')]=_0xed95ea[_0xa6e6('0xc')][_0xa6e6('0xd')][_0xa6e6('0xe')];}else{_0x3dc375['host']=_0xed95ea[_0xa6e6('0xc')][_0xa6e6('0xd')][_0xa6e6('0xf')];_0x3dc375[_0xa6e6('0x10')]=_0xed95ea[_0xa6e6('0xc')]['Smtp'][_0xa6e6('0x10')];_0x3dc375['secure']=_0xed95ea[_0xa6e6('0xc')]['Smtp'][_0xa6e6('0x11')];}if(_0xed95ea[_0xa6e6('0xc')][_0xa6e6('0xd')][_0xa6e6('0x12')]){_0x3dc375[_0xa6e6('0x13')]={'user':_0xed95ea[_0xa6e6('0xc')]['Smtp'][_0xa6e6('0x14')],'pass':_0xed95ea[_0xa6e6('0xc')][_0xa6e6('0xd')][_0xa6e6('0x15')]};}var _0x360b34={'account':_0x3dc375,'message':{'from':util[_0xa6e6('0x16')](_0xa6e6('0x17'),_0xed95ea[_0xa6e6('0xc')][_0xa6e6('0x18')],_0xed95ea[_0xa6e6('0xc')][_0xa6e6('0xb')]||_0xed95ea['MailAccount'][_0xa6e6('0xd')][_0xa6e6('0x14')]),'to':_0xed95ea[_0xa6e6('0xb')],'cc':_0xed95ea['cc'],'bcc':_0xed95ea[_0xa6e6('0x19')],'subject':util[_0xa6e6('0x16')]('Report\x20%s\x20last\x20%s\x20%s',_0x5c7bea['name'],_0xed95ea[_0xa6e6('0x1a')],_0xed95ea[_0xa6e6('0x1b')])}};var _0x3a5d3c=path[_0xa6e6('0x1c')](__dirname,'../../files/reports');var _0x13d6d3=_0x5c7bea['savename'];var _0x5f2c51=util[_0xa6e6('0x16')](_0xa6e6('0x1d'),path[_0xa6e6('0x1e')](_0x5c7bea['savename'],path[_0xa6e6('0x1f')](_0x5c7bea[_0xa6e6('0x20')])),_0xa6e6('0x21'));var _0x5be3a0=path[_0xa6e6('0x1c')](_0x3a5d3c,_0x13d6d3);var _0x56d477=path[_0xa6e6('0x1c')](_0x3a5d3c,_0x5f2c51);if(fs[_0xa6e6('0x22')](_0x5be3a0)){_0x5c7bea[_0xa6e6('0x23')]='Sent';_0x360b34['message']['attachments']=[{'filename':_0x13d6d3,'path':_0x5be3a0}];_0x360b34['message'][_0xa6e6('0x24')]=util[_0xa6e6('0x16')](_0xa6e6('0x25'),JSON[_0xa6e6('0x26')](_0x5c7bea,null,0x2));}else if(fs[_0xa6e6('0x22')](_0x56d477)){_0x5c7bea['status']='Sent';_0x360b34['message']['attachments']=[{'filename':_0x5f2c51,'path':_0x56d477}];}else{_0x360b34[_0xa6e6('0x27')]['text']=_0xa6e6('0x28');if(!_0xed95ea[_0xa6e6('0x29')]){_0x47432a=![];logger[_0xa6e6('0x9')](_0xa6e6('0x2a'));}}if(_0x47432a){return client[_0xa6e6('0x2b')](_0xa6e6('0x2c'),_0x360b34)['then'](function(_0x17ba3c){if(_0x17ba3c['error']){return logger[_0xa6e6('0x2d')](_0xa6e6('0x2e'),JSON[_0xa6e6('0x26')](_0x17ba3c));}return logger['info'](_0xa6e6('0x2f'));})[_0xa6e6('0x30')](function(_0x258123){return logger[_0xa6e6('0x2d')](_0xa6e6('0x2e'),JSON[_0xa6e6('0x26')](_0x258123));});}};}function handleError(){return function(_0x57ff17){return logger[_0xa6e6('0x2d')](JSON[_0xa6e6('0x26')](_0x57ff17));};}function handleResult(_0x39e7a6){return function(_0x462516){logger[_0xa6e6('0x9')](_0xa6e6('0x31'),JSON['stringify'](_0x462516));if(_0x39e7a6[_0xa6e6('0xc')]&&_0x39e7a6[_0xa6e6('0xc')][_0xa6e6('0xd')]&&!_[_0xa6e6('0x32')](_0x39e7a6[_0xa6e6('0xb')])){setTimeout(handleSendEmail(_0x39e7a6,_0x462516),0x3c*0x3e8);}};}function handleJob(_0x39e698){return function(){try{if(_[_0xa6e6('0x32')](_0x39e698['subtractNumber'])){return logger[_0xa6e6('0x9')](_0xa6e6('0x33'));}if(_[_0xa6e6('0x32')](_0x39e698['subtractUnit'])){return logger[_0xa6e6('0x9')](_0xa6e6('0x34'));}var _0xdf7a0c={'startDate':moment()[_0xa6e6('0x35')](_0x39e698[_0xa6e6('0x1a')],_0x39e698[_0xa6e6('0x1b')])[_0xa6e6('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0xa6e6('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'type':_0xa6e6('0x36'),'output':_0x39e698['output'],'name':_0x39e698[_0xa6e6('0x18')]};if(!_['isNil'](_0x39e698[_0xa6e6('0x37')])){logger[_0xa6e6('0x9')](_0xa6e6('0x38'),_0x39e698[_0xa6e6('0x37')]);return analyticDefaultReportController['runReport']({'id':_0x39e698[_0xa6e6('0x37')]},_0xdf7a0c)[_0xa6e6('0x39')](handleResult(_0x39e698))['catch'](handleError());}if(!_[_0xa6e6('0x32')](_0x39e698[_0xa6e6('0x3a')])){logger[_0xa6e6('0x9')](_0xa6e6('0x3b'),_0x39e698['CustomReportId']);return analyticCustomReportController['runReport']({'id':_0x39e698[_0xa6e6('0x3a')]},_0xdf7a0c)['then'](handleResult(_0x39e698))[_0xa6e6('0x30')](handleError());}}catch(_0x1a6e3a){logger['error'](JSON[_0xa6e6('0x26')](_0x1a6e3a));}return logger['info'](_0xa6e6('0x3c'));};}function getJobs(_0x31a596){var _0x438a65={};if(_0x31a596){_0x438a65['id']=_0x31a596;}return db['Schedule'][_0xa6e6('0x3d')]({'where':_0x438a65,'include':[{'model':db[_0xa6e6('0xc')],'attributes':['id',_0xa6e6('0x18'),_0xa6e6('0xb')],'include':[{'model':db[_0xa6e6('0x3e')],'as':_0xa6e6('0xd')}]}]})[_0xa6e6('0x39')](function(_0x5da1b2){var _0x676527=_[_0xa6e6('0x3f')](manager[_0xa6e6('0x40')]);var _0x67918d=_[_0xa6e6('0x41')](_0x5da1b2,function(_0x3cd8ea){return _0x3cd8ea['id'][_0xa6e6('0x42')]();});var _0x3b6f00=_['keyBy'](_0x5da1b2,function(_0x226a26){return _0x226a26['id'][_0xa6e6('0x42')]();});var _0x472f36=_0x31a596?_0x67918d:_['difference'](_0x67918d,_0x676527);var _0x121501=_[_0xa6e6('0x43')](_0x67918d,_0x676527);var _0x129b4c=_[_0xa6e6('0x44')](_0x676527,_0x67918d);var _0x5e963e;var _0x18161f;for(_0x5e963e=0x0;_0x5e963e<_0x129b4c[_0xa6e6('0x45')]&&!_0x31a596;_0x5e963e+=0x1){_0x18161f=_0x129b4c[_0x5e963e][_0xa6e6('0x42')]();if(manager['exists'](_0x18161f)){manager[_0xa6e6('0x46')](_0x18161f);manager[_0xa6e6('0x47')](_0x18161f);logger[_0xa6e6('0x9')](_0xa6e6('0x48'),_0x18161f);}}logger[_0xa6e6('0x9')](_0xa6e6('0x49'),JSON[_0xa6e6('0x26')](_0x472f36));for(_0x5e963e=0x0;_0x5e963e<_0x472f36[_0xa6e6('0x45')];_0x5e963e+=0x1){_0x18161f=_0x472f36[_0x5e963e]['toString']();logger['info'](_0xa6e6('0x4a'),_0x18161f);if(_0x31a596){logger['info']('my\x20id',_0x31a596);logger[_0xa6e6('0x9')](JSON[_0xa6e6('0x26')](_0x3b6f00[_0x18161f]));BPromise['resolve']()['then'](handleJob(_0x3b6f00[_0x18161f]));logger[_0xa6e6('0x9')]('run\x20job',_0x3b6f00[_0x18161f][_0xa6e6('0x18')],_0x3b6f00[_0x18161f]['cron']);}else if(_0x3b6f00[_0x18161f]['cron']&&_0x3b6f00[_0x18161f][_0xa6e6('0x4b')]&&moment()['isBetween'](_0x3b6f00[_0x18161f][_0xa6e6('0x4c')],_0x3b6f00[_0x18161f][_0xa6e6('0x4d')])){manager[_0xa6e6('0x4e')](_0x18161f,_0x3b6f00[_0x18161f]['cron'],handleJob(_0x3b6f00[_0x18161f]));manager[_0xa6e6('0x4f')](_0x18161f);logger[_0xa6e6('0x9')](_0xa6e6('0x50'),_0x3b6f00[_0x18161f][_0xa6e6('0x18')],_0x3b6f00[_0x18161f][_0xa6e6('0x51')]);}else if(manager['exists'](_0x18161f)){manager[_0xa6e6('0x46')](_0x18161f);manager[_0xa6e6('0x47')](_0x18161f);logger['info'](_0xa6e6('0x52'),_0x3b6f00[_0x18161f][_0xa6e6('0x18')],_0x3b6f00[_0x18161f][_0xa6e6('0x51')]);}}for(_0x5e963e=0x0,_0x18161f;_0x5e963e<_0x121501[_0xa6e6('0x45')]&&!_0x31a596;_0x5e963e+=0x1){_0x18161f=_0x121501[_0x5e963e][_0xa6e6('0x42')]();if(manager[_0xa6e6('0x53')](_0x18161f)){if(_0x3b6f00[_0x18161f]['cron']&&_0x3b6f00[_0x18161f]['active']&&moment()['isBetween'](_0x3b6f00[_0x18161f][_0xa6e6('0x4c')],_0x3b6f00[_0x18161f][_0xa6e6('0x4d')])){manager[_0xa6e6('0x54')](_0x18161f,_0x3b6f00[_0x18161f]['cron'],handleJob(_0x3b6f00[_0x18161f]));logger[_0xa6e6('0x9')](_0xa6e6('0x55'),_0x3b6f00[_0x18161f][_0xa6e6('0x18')],_0x3b6f00[_0x18161f][_0xa6e6('0x51')]);}else{manager[_0xa6e6('0x46')](_0x18161f);manager[_0xa6e6('0x47')](_0x18161f);logger['info']('stop\x20cron',_0x3b6f00[_0x18161f]['name'],_0x3b6f00[_0x18161f]['cron']);}}}})[_0xa6e6('0x30')](function(_0x31236b){logger[_0xa6e6('0x2d')](JSON[_0xa6e6('0x26')](_0x31236b));});}exports[_0xa6e6('0x56')]=function(_0x5c9eaa){return getJobs(_0x5c9eaa);};exports[_0xa6e6('0x4f')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};