Built motion from commit (unavailable).|2.5.29
[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 _0x6b33=['http','info','email','Smtp','service','MailAccount','host','port','secure','authentication','auth','pass','format','\x22%s\x22\x20<%s>','name','user','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','savename','%s.%s','basename','extname','existsSync','Sent','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','empty\x20file,\x20email\x20not\x20sent','request','then','error','error\x20mail','stringify','email\x20sent','catch','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','MailServerOut','jobs','map','toString','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','start','stop\x20cron','update','path','moment','cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client'];(function(_0x84d47a,_0x9c2b4e){var _0x4729de=function(_0x1eda33){while(--_0x1eda33){_0x84d47a['push'](_0x84d47a['shift']());}};_0x4729de(++_0x9c2b4e);}(_0x6b33,0x1f4));var _0x36b3=function(_0x5efdf5,_0x3162da){_0x5efdf5=_0x5efdf5-0x0;var _0x390983=_0x6b33[_0x5efdf5];return _0x390983;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0x36b3('0x0'));var _=require('lodash');var moment=require(_0x36b3('0x1'));var CronJobManager=require(_0x36b3('0x2'));var jayson=require(_0x36b3('0x3'));var BPromise=require(_0x36b3('0x4'));var logger=require(_0x36b3('0x5'))(_0x36b3('0x6'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x36b3('0x7'));var analyticDefaultReportController=require(_0x36b3('0x8'));var client=jayson[_0x36b3('0x9')][_0x36b3('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0xc9a810,_0x2cbc83){return function(){logger[_0x36b3('0xb')]('Try\x20to\x20send\x20a\x20mail\x20to',_0xc9a810[_0x36b3('0xc')]);var _0x56f42a=!![];var _0x2457cf={'tls':{'rejectUnauthorized':![]}};if(_0xc9a810['MailAccount'][_0x36b3('0xd')][_0x36b3('0xe')]){_0x2457cf[_0x36b3('0xe')]=_0xc9a810[_0x36b3('0xf')][_0x36b3('0xd')]['service'];}else{_0x2457cf['host']=_0xc9a810[_0x36b3('0xf')]['Smtp'][_0x36b3('0x10')];_0x2457cf[_0x36b3('0x11')]=_0xc9a810['MailAccount'][_0x36b3('0xd')][_0x36b3('0x11')];_0x2457cf['secure']=_0xc9a810[_0x36b3('0xf')][_0x36b3('0xd')][_0x36b3('0x12')];}if(_0xc9a810[_0x36b3('0xf')]['Smtp'][_0x36b3('0x13')]){_0x2457cf[_0x36b3('0x14')]={'user':_0xc9a810[_0x36b3('0xf')][_0x36b3('0xd')]['user'],'pass':_0xc9a810[_0x36b3('0xf')]['Smtp'][_0x36b3('0x15')]};}var _0x1ef5e1={'account':_0x2457cf,'message':{'from':util[_0x36b3('0x16')](_0x36b3('0x17'),_0xc9a810['MailAccount'][_0x36b3('0x18')],_0xc9a810[_0x36b3('0xf')][_0x36b3('0xc')]||_0xc9a810[_0x36b3('0xf')][_0x36b3('0xd')][_0x36b3('0x19')]),'to':_0xc9a810[_0x36b3('0xc')],'cc':_0xc9a810['cc'],'bcc':_0xc9a810[_0x36b3('0x1a')],'subject':util[_0x36b3('0x16')](_0x36b3('0x1b'),_0x2cbc83[_0x36b3('0x18')],_0xc9a810[_0x36b3('0x1c')],_0xc9a810[_0x36b3('0x1d')])}};var _0x5ec42e=path[_0x36b3('0x1e')](__dirname,'../../files/reports');var _0x1162ce=_0x2cbc83[_0x36b3('0x1f')];var _0x27f731=util['format'](_0x36b3('0x20'),path[_0x36b3('0x21')](_0x2cbc83['savename'],path[_0x36b3('0x22')](_0x2cbc83[_0x36b3('0x1f')])),'zip');var _0x481abf=path[_0x36b3('0x1e')](_0x5ec42e,_0x1162ce);var _0x2ff8e5=path[_0x36b3('0x1e')](_0x5ec42e,_0x27f731);if(fs[_0x36b3('0x23')](_0x481abf)){_0x2cbc83['status']=_0x36b3('0x24');_0x1ef5e1[_0x36b3('0x25')][_0x36b3('0x26')]=[{'filename':_0x1162ce,'path':_0x481abf}];_0x1ef5e1[_0x36b3('0x25')][_0x36b3('0x27')]=util[_0x36b3('0x16')](_0x36b3('0x28'),JSON['stringify'](_0x2cbc83,null,0x2));}else if(fs[_0x36b3('0x23')](_0x2ff8e5)){_0x2cbc83['status']='Sent';_0x1ef5e1['message']['attachments']=[{'filename':_0x27f731,'path':_0x2ff8e5}];}else{_0x1ef5e1[_0x36b3('0x25')][_0x36b3('0x27')]=_0x36b3('0x29');if(!_0xc9a810['sendIfEmpty']){_0x56f42a=![];logger[_0x36b3('0xb')](_0x36b3('0x2a'));}}if(_0x56f42a){return client[_0x36b3('0x2b')]('SendMail',_0x1ef5e1)[_0x36b3('0x2c')](function(_0x3537d4){if(_0x3537d4[_0x36b3('0x2d')]){return logger['error'](_0x36b3('0x2e'),JSON[_0x36b3('0x2f')](_0x3537d4));}return logger[_0x36b3('0xb')](_0x36b3('0x30'));})[_0x36b3('0x31')](function(_0xdb19b6){return logger[_0x36b3('0x2d')](_0x36b3('0x2e'),JSON[_0x36b3('0x2f')](_0xdb19b6));});}};}function handleError(){return function(_0xa71cd){return logger['error'](JSON[_0x36b3('0x2f')](_0xa71cd));};}function handleResult(_0x3654cc){return function(_0x4c5a0e){logger['info'](_0x36b3('0x32'),JSON[_0x36b3('0x2f')](_0x4c5a0e));if(_0x3654cc['MailAccount']&&_0x3654cc[_0x36b3('0xf')][_0x36b3('0xd')]&&!_[_0x36b3('0x33')](_0x3654cc['email'])){setTimeout(handleSendEmail(_0x3654cc,_0x4c5a0e),0x3c*0x3e8);}};}function handleJob(_0x29e8f6){return function(){try{if(_[_0x36b3('0x33')](_0x29e8f6[_0x36b3('0x1c')])){return logger[_0x36b3('0xb')](_0x36b3('0x34'));}if(_[_0x36b3('0x33')](_0x29e8f6[_0x36b3('0x1d')])){return logger[_0x36b3('0xb')](_0x36b3('0x35'));}var _0xffd70b={'startDate':moment()[_0x36b3('0x36')](_0x29e8f6[_0x36b3('0x1c')],_0x29e8f6['subtractUnit'])[_0x36b3('0x16')](_0x36b3('0x37')),'endDate':moment()[_0x36b3('0x16')](_0x36b3('0x37')),'type':_0x36b3('0x38'),'output':_0x29e8f6['output'],'name':_0x29e8f6[_0x36b3('0x18')]};if(!_[_0x36b3('0x33')](_0x29e8f6[_0x36b3('0x39')])){logger[_0x36b3('0xb')]('exec\x20defaul\x20report\x20id:%s',_0x29e8f6[_0x36b3('0x39')]);return analyticDefaultReportController[_0x36b3('0x3a')]({'id':_0x29e8f6[_0x36b3('0x39')]},_0xffd70b)[_0x36b3('0x2c')](handleResult(_0x29e8f6))['catch'](handleError());}if(!_[_0x36b3('0x33')](_0x29e8f6[_0x36b3('0x3b')])){logger[_0x36b3('0xb')](_0x36b3('0x3c'),_0x29e8f6[_0x36b3('0x3b')]);return analyticCustomReportController[_0x36b3('0x3a')]({'id':_0x29e8f6[_0x36b3('0x3b')]},_0xffd70b)[_0x36b3('0x2c')](handleResult(_0x29e8f6))['catch'](handleError());}}catch(_0x53fa36){logger[_0x36b3('0x2d')](JSON[_0x36b3('0x2f')](_0x53fa36));}return logger[_0x36b3('0xb')](_0x36b3('0x3d'));};}function getJobs(_0x3b11a9){var _0x90ae3b={};if(_0x3b11a9){_0x90ae3b['id']=_0x3b11a9;}return db[_0x36b3('0x3e')]['findAll']({'where':_0x90ae3b,'include':[{'model':db[_0x36b3('0xf')],'attributes':['id',_0x36b3('0x18'),_0x36b3('0xc')],'include':[{'model':db[_0x36b3('0x3f')],'as':'Smtp'}]}]})[_0x36b3('0x2c')](function(_0x3a9353){var _0x5408e1=_['keys'](manager[_0x36b3('0x40')]);var _0x2de8e3=_[_0x36b3('0x41')](_0x3a9353,function(_0x2e70c3){return _0x2e70c3['id'][_0x36b3('0x42')]();});var _0x1897f2=_['keyBy'](_0x3a9353,function(_0x24aa16){return _0x24aa16['id'][_0x36b3('0x42')]();});var _0x5c8e68=_0x3b11a9?_0x2de8e3:_[_0x36b3('0x43')](_0x2de8e3,_0x5408e1);var _0x27580e=_[_0x36b3('0x44')](_0x2de8e3,_0x5408e1);var _0x328b90=_[_0x36b3('0x43')](_0x5408e1,_0x2de8e3);var _0x44648c;var _0x1227b;for(_0x44648c=0x0;_0x44648c<_0x328b90[_0x36b3('0x45')]&&!_0x3b11a9;_0x44648c+=0x1){_0x1227b=_0x328b90[_0x44648c][_0x36b3('0x42')]();if(manager[_0x36b3('0x46')](_0x1227b)){manager[_0x36b3('0x47')](_0x1227b);manager[_0x36b3('0x48')](_0x1227b);logger[_0x36b3('0xb')](_0x36b3('0x49'),_0x1227b);}}logger['info']('toRun',JSON[_0x36b3('0x2f')](_0x5c8e68));for(_0x44648c=0x0;_0x44648c<_0x5c8e68[_0x36b3('0x45')];_0x44648c+=0x1){_0x1227b=_0x5c8e68[_0x44648c]['toString']();logger[_0x36b3('0xb')]('index',_0x1227b);if(_0x3b11a9){logger[_0x36b3('0xb')](_0x36b3('0x4a'),_0x3b11a9);logger['info'](JSON['stringify'](_0x1897f2[_0x1227b]));BPromise[_0x36b3('0x4b')]()[_0x36b3('0x2c')](handleJob(_0x1897f2[_0x1227b]));logger['info'](_0x36b3('0x4c'),_0x1897f2[_0x1227b][_0x36b3('0x18')],_0x1897f2[_0x1227b][_0x36b3('0x4d')]);}else if(_0x1897f2[_0x1227b][_0x36b3('0x4d')]&&_0x1897f2[_0x1227b][_0x36b3('0x4e')]&&moment()[_0x36b3('0x4f')](_0x1897f2[_0x1227b][_0x36b3('0x50')],_0x1897f2[_0x1227b][_0x36b3('0x51')])){manager['add'](_0x1227b,_0x1897f2[_0x1227b][_0x36b3('0x4d')],handleJob(_0x1897f2[_0x1227b]));manager[_0x36b3('0x52')](_0x1227b);logger[_0x36b3('0xb')]('add\x20cron',_0x1897f2[_0x1227b][_0x36b3('0x18')],_0x1897f2[_0x1227b][_0x36b3('0x4d')]);}else if(manager[_0x36b3('0x46')](_0x1227b)){manager[_0x36b3('0x47')](_0x1227b);manager[_0x36b3('0x48')](_0x1227b);logger[_0x36b3('0xb')](_0x36b3('0x53'),_0x1897f2[_0x1227b][_0x36b3('0x18')],_0x1897f2[_0x1227b][_0x36b3('0x4d')]);}}for(_0x44648c=0x0,_0x1227b;_0x44648c<_0x27580e[_0x36b3('0x45')]&&!_0x3b11a9;_0x44648c+=0x1){_0x1227b=_0x27580e[_0x44648c][_0x36b3('0x42')]();if(manager['exists'](_0x1227b)){if(_0x1897f2[_0x1227b][_0x36b3('0x4d')]&&_0x1897f2[_0x1227b]['active']&&moment()[_0x36b3('0x4f')](_0x1897f2[_0x1227b][_0x36b3('0x50')],_0x1897f2[_0x1227b][_0x36b3('0x51')])){manager[_0x36b3('0x54')](_0x1227b,_0x1897f2[_0x1227b][_0x36b3('0x4d')],handleJob(_0x1897f2[_0x1227b]));logger[_0x36b3('0xb')]('update\x20cron',_0x1897f2[_0x1227b]['name'],_0x1897f2[_0x1227b][_0x36b3('0x4d')]);}else{manager[_0x36b3('0x47')](_0x1227b);manager['deleteJob'](_0x1227b);logger[_0x36b3('0xb')]('stop\x20cron',_0x1897f2[_0x1227b][_0x36b3('0x18')],_0x1897f2[_0x1227b][_0x36b3('0x4d')]);}}}})[_0x36b3('0x31')](function(_0x4ca1d7){logger[_0x36b3('0x2d')](JSON[_0x36b3('0x2f')](_0x4ca1d7));});}exports['run']=function(_0x15fa78){return getJobs(_0x15fa78);};exports[_0x36b3('0x52')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};