Built motion from commit (unavailable).|2.5.14
[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 _0x0480=['YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','no\x20report\x20id','Schedule','name','MailServerOut','keys','jobs','toString','keyBy','difference','exists','stop','deleteJob','delete\x20cron','toRun','length','resolve','run\x20job','startAt','endAt','add','start','add\x20cron','stop\x20cron','cron','active','update','update\x20cron','util','lodash','moment','cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','MailAccount','Smtp','service','host','secure','authentication','auth','format','\x22%s\x22\x20<%s>','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','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','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','email\x20sent','catch','stringify','data','isNil','email','subtractUnit\x20null\x20or\x20undefined','subtract'];(function(_0x1d56f2,_0x5776b0){var _0x15edbe=function(_0x42db8b){while(--_0x42db8b){_0x1d56f2['push'](_0x1d56f2['shift']());}};_0x15edbe(++_0x5776b0);}(_0x0480,0x175));var _0x0048=function(_0x1a4194,_0x1c1b15){_0x1a4194=_0x1a4194-0x0;var _0x112a86=_0x0480[_0x1a4194];return _0x112a86;};'use strict';var fs=require('fs');var util=require(_0x0048('0x0'));var path=require('path');var _=require(_0x0048('0x1'));var moment=require(_0x0048('0x2'));var CronJobManager=require(_0x0048('0x3'));var jayson=require(_0x0048('0x4'));var BPromise=require(_0x0048('0x5'));var logger=require(_0x0048('0x6'))(_0x0048('0x7'));var db=require(_0x0048('0x8'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0x0048('0x9'));var client=jayson['client'][_0x0048('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x36a935,_0x1a9502){return function(){logger[_0x0048('0xb')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x36a935['email']);var _0x3040e6=!![];var _0x389016={'tls':{'rejectUnauthorized':![]}};if(_0x36a935[_0x0048('0xc')][_0x0048('0xd')]['service']){_0x389016['service']=_0x36a935['MailAccount'][_0x0048('0xd')][_0x0048('0xe')];}else{_0x389016['host']=_0x36a935[_0x0048('0xc')]['Smtp'][_0x0048('0xf')];_0x389016['port']=_0x36a935['MailAccount'][_0x0048('0xd')]['port'];_0x389016[_0x0048('0x10')]=_0x36a935[_0x0048('0xc')][_0x0048('0xd')][_0x0048('0x10')];}if(_0x36a935[_0x0048('0xc')]['Smtp'][_0x0048('0x11')]){_0x389016[_0x0048('0x12')]={'user':_0x36a935[_0x0048('0xc')][_0x0048('0xd')]['user'],'pass':_0x36a935[_0x0048('0xc')][_0x0048('0xd')]['pass']};}var _0x5f3bcc={'account':_0x389016,'message':{'from':util[_0x0048('0x13')](_0x0048('0x14'),_0x36a935[_0x0048('0xc')]['name'],_0x36a935[_0x0048('0xc')]['email']||_0x36a935[_0x0048('0xc')][_0x0048('0xd')]['user']),'to':_0x36a935['email'],'cc':_0x36a935['cc'],'bcc':_0x36a935[_0x0048('0x15')],'subject':util[_0x0048('0x13')](_0x0048('0x16'),_0x1a9502['name'],_0x36a935[_0x0048('0x17')],_0x36a935[_0x0048('0x18')])}};var _0x333529=path[_0x0048('0x19')](__dirname,'../../files/reports');var _0x39bc04=_0x1a9502[_0x0048('0x1a')];var _0xeb1c9e=util['format'](_0x0048('0x1b'),path[_0x0048('0x1c')](_0x1a9502[_0x0048('0x1a')],path[_0x0048('0x1d')](_0x1a9502['savename'])),_0x0048('0x1e'));var _0x4cc62e=path[_0x0048('0x19')](_0x333529,_0x39bc04);var _0x124ea7=path['join'](_0x333529,_0xeb1c9e);if(fs[_0x0048('0x1f')](_0x4cc62e)){_0x1a9502[_0x0048('0x20')]=_0x0048('0x21');_0x5f3bcc[_0x0048('0x22')][_0x0048('0x23')]=[{'filename':_0x39bc04,'path':_0x4cc62e}];_0x5f3bcc['message'][_0x0048('0x24')]=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'](_0x1a9502,null,0x2));}else if(fs[_0x0048('0x1f')](_0x124ea7)){_0x1a9502['status']='Sent';_0x5f3bcc[_0x0048('0x22')][_0x0048('0x23')]=[{'filename':_0xeb1c9e,'path':_0x124ea7}];}else{_0x5f3bcc['message'][_0x0048('0x24')]=_0x0048('0x25');if(!_0x36a935['sendIfEmpty']){_0x3040e6=![];logger[_0x0048('0xb')](_0x0048('0x26'));}}if(_0x3040e6){return client[_0x0048('0x27')](_0x0048('0x28'),_0x5f3bcc)[_0x0048('0x29')](function(_0x368914){if(_0x368914['error']){return logger[_0x0048('0x2a')](_0x0048('0x2b'),JSON['stringify'](_0x368914));}return logger['info'](_0x0048('0x2c'));})[_0x0048('0x2d')](function(_0x2f2d0c){return logger[_0x0048('0x2a')](_0x0048('0x2b'),JSON[_0x0048('0x2e')](_0x2f2d0c));});}};}function handleError(){return function(_0x1c1ffe){return logger[_0x0048('0x2a')](JSON['stringify'](_0x1c1ffe));};}function handleResult(_0x1ccf4d){return function(_0x2327c1){logger[_0x0048('0xb')](_0x0048('0x2f'),JSON[_0x0048('0x2e')](_0x2327c1));if(_0x1ccf4d[_0x0048('0xc')]&&_0x1ccf4d['MailAccount'][_0x0048('0xd')]&&!_[_0x0048('0x30')](_0x1ccf4d[_0x0048('0x31')])){setTimeout(handleSendEmail(_0x1ccf4d,_0x2327c1),0x3c*0x3e8);}};}function handleJob(_0x291298){return function(){try{if(_[_0x0048('0x30')](_0x291298[_0x0048('0x17')])){return logger[_0x0048('0xb')]('subtractNumber\x20null\x20or\x20undefined');}if(_[_0x0048('0x30')](_0x291298['subtractUnit'])){return logger[_0x0048('0xb')](_0x0048('0x32'));}var _0xd48842={'startDate':moment()[_0x0048('0x33')](_0x291298[_0x0048('0x17')],_0x291298[_0x0048('0x18')])['format'](_0x0048('0x34')),'endDate':moment()[_0x0048('0x13')](_0x0048('0x34')),'type':_0x0048('0x35'),'output':_0x291298['output'],'name':_0x291298['name']};if(!_[_0x0048('0x30')](_0x291298[_0x0048('0x36')])){logger[_0x0048('0xb')](_0x0048('0x37'),_0x291298[_0x0048('0x36')]);return analyticDefaultReportController[_0x0048('0x38')]({'id':_0x291298[_0x0048('0x36')]},_0xd48842)[_0x0048('0x29')](handleResult(_0x291298))[_0x0048('0x2d')](handleError());}if(!_[_0x0048('0x30')](_0x291298[_0x0048('0x39')])){logger[_0x0048('0xb')]('exec\x20custom\x20report\x20id:%s',_0x291298['CustomReportId']);return analyticCustomReportController[_0x0048('0x38')]({'id':_0x291298['CustomReportId']},_0xd48842)[_0x0048('0x29')](handleResult(_0x291298))[_0x0048('0x2d')](handleError());}}catch(_0x3b45e1){logger['error'](JSON[_0x0048('0x2e')](_0x3b45e1));}return logger[_0x0048('0xb')](_0x0048('0x3a'));};}function getJobs(_0x570b45){var _0x4f16cc={};if(_0x570b45){_0x4f16cc['id']=_0x570b45;}return db[_0x0048('0x3b')]['findAll']({'where':_0x4f16cc,'include':[{'model':db[_0x0048('0xc')],'attributes':['id',_0x0048('0x3c'),_0x0048('0x31')],'include':[{'model':db[_0x0048('0x3d')],'as':_0x0048('0xd')}]}]})[_0x0048('0x29')](function(_0x3944b6){var _0x318260=_[_0x0048('0x3e')](manager[_0x0048('0x3f')]);var _0xe98f42=_['map'](_0x3944b6,function(_0xe84835){return _0xe84835['id'][_0x0048('0x40')]();});var _0x161016=_[_0x0048('0x41')](_0x3944b6,function(_0x54fe9f){return _0x54fe9f['id'][_0x0048('0x40')]();});var _0x143c6d=_0x570b45?_0xe98f42:_['difference'](_0xe98f42,_0x318260);var _0x12bb15=_['intersection'](_0xe98f42,_0x318260);var _0x22753d=_[_0x0048('0x42')](_0x318260,_0xe98f42);var _0x8e8229;var _0x2f0872;for(_0x8e8229=0x0;_0x8e8229<_0x22753d['length']&&!_0x570b45;_0x8e8229+=0x1){_0x2f0872=_0x22753d[_0x8e8229][_0x0048('0x40')]();if(manager[_0x0048('0x43')](_0x2f0872)){manager[_0x0048('0x44')](_0x2f0872);manager[_0x0048('0x45')](_0x2f0872);logger[_0x0048('0xb')](_0x0048('0x46'),_0x2f0872);}}logger['info'](_0x0048('0x47'),JSON[_0x0048('0x2e')](_0x143c6d));for(_0x8e8229=0x0;_0x8e8229<_0x143c6d[_0x0048('0x48')];_0x8e8229+=0x1){_0x2f0872=_0x143c6d[_0x8e8229][_0x0048('0x40')]();logger[_0x0048('0xb')]('index',_0x2f0872);if(_0x570b45){logger[_0x0048('0xb')]('my\x20id',_0x570b45);logger[_0x0048('0xb')](JSON[_0x0048('0x2e')](_0x161016[_0x2f0872]));BPromise[_0x0048('0x49')]()[_0x0048('0x29')](handleJob(_0x161016[_0x2f0872]));logger[_0x0048('0xb')](_0x0048('0x4a'),_0x161016[_0x2f0872][_0x0048('0x3c')],_0x161016[_0x2f0872]['cron']);}else if(_0x161016[_0x2f0872]['cron']&&_0x161016[_0x2f0872]['active']&&moment()['isBetween'](_0x161016[_0x2f0872][_0x0048('0x4b')],_0x161016[_0x2f0872][_0x0048('0x4c')])){manager[_0x0048('0x4d')](_0x2f0872,_0x161016[_0x2f0872]['cron'],handleJob(_0x161016[_0x2f0872]));manager[_0x0048('0x4e')](_0x2f0872);logger['info'](_0x0048('0x4f'),_0x161016[_0x2f0872][_0x0048('0x3c')],_0x161016[_0x2f0872]['cron']);}else if(manager[_0x0048('0x43')](_0x2f0872)){manager[_0x0048('0x44')](_0x2f0872);manager[_0x0048('0x45')](_0x2f0872);logger[_0x0048('0xb')](_0x0048('0x50'),_0x161016[_0x2f0872][_0x0048('0x3c')],_0x161016[_0x2f0872][_0x0048('0x51')]);}}for(_0x8e8229=0x0,_0x2f0872;_0x8e8229<_0x12bb15[_0x0048('0x48')]&&!_0x570b45;_0x8e8229+=0x1){_0x2f0872=_0x12bb15[_0x8e8229][_0x0048('0x40')]();if(manager[_0x0048('0x43')](_0x2f0872)){if(_0x161016[_0x2f0872][_0x0048('0x51')]&&_0x161016[_0x2f0872][_0x0048('0x52')]&&moment()['isBetween'](_0x161016[_0x2f0872][_0x0048('0x4b')],_0x161016[_0x2f0872][_0x0048('0x4c')])){manager[_0x0048('0x53')](_0x2f0872,_0x161016[_0x2f0872]['cron'],handleJob(_0x161016[_0x2f0872]));logger[_0x0048('0xb')](_0x0048('0x54'),_0x161016[_0x2f0872][_0x0048('0x3c')],_0x161016[_0x2f0872][_0x0048('0x51')]);}else{manager[_0x0048('0x44')](_0x2f0872);manager[_0x0048('0x45')](_0x2f0872);logger[_0x0048('0xb')](_0x0048('0x50'),_0x161016[_0x2f0872]['name'],_0x161016[_0x2f0872][_0x0048('0x51')]);}}}})[_0x0048('0x2d')](function(_0x1fb36d){logger[_0x0048('0x2a')](JSON[_0x0048('0x2e')](_0x1fb36d));});}exports['run']=function(_0xfdaa8f){return getJobs(_0xfdaa8f);};exports[_0x0048('0x4e')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};