Built motion from commit (unavailable).|2.5.4
[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 _0x74e3=['cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','Smtp','service','host','MailAccount','port','secure','authentication','pass','\x22%s\x22\x20<%s>','email','bcc','format','Report\x20%s\x20last\x20%s\x20%s','name','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','zip','status','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','stringify','existsSync','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','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','runReport','DefaultReportId','CustomReportId','Schedule','findAll','MailServerOut','jobs','map','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','toRun','my\x20id','run\x20job','cron','isBetween','startAt','endAt','add','start','add\x20cron','stop\x20cron','active','update','update\x20cron','run','util','path','lodash'];(function(_0x1a366c,_0x56f038){var _0x3cd320=function(_0x2de609){while(--_0x2de609){_0x1a366c['push'](_0x1a366c['shift']());}};_0x3cd320(++_0x56f038);}(_0x74e3,0x1bf));var _0x374e=function(_0x4a7d7c,_0x185b74){_0x4a7d7c=_0x4a7d7c-0x0;var _0x11d2b4=_0x74e3[_0x4a7d7c];return _0x11d2b4;};'use strict';var fs=require('fs');var util=require(_0x374e('0x0'));var path=require(_0x374e('0x1'));var _=require(_0x374e('0x2'));var moment=require('moment');var CronJobManager=require(_0x374e('0x3'));var jayson=require(_0x374e('0x4'));var BPromise=require(_0x374e('0x5'));var logger=require(_0x374e('0x6'))(_0x374e('0x7'));var db=require(_0x374e('0x8'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0x374e('0x9'));var client=jayson[_0x374e('0xa')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0xa8f3b5,_0x1ef855){return function(){logger[_0x374e('0xb')](_0x374e('0xc'),_0xa8f3b5['email']);var _0x2fe83a=!![];var _0x560174={'tls':{'rejectUnauthorized':![]}};if(_0xa8f3b5['MailAccount'][_0x374e('0xd')][_0x374e('0xe')]){_0x560174[_0x374e('0xe')]=_0xa8f3b5['MailAccount']['Smtp'][_0x374e('0xe')];}else{_0x560174[_0x374e('0xf')]=_0xa8f3b5[_0x374e('0x10')][_0x374e('0xd')][_0x374e('0xf')];_0x560174[_0x374e('0x11')]=_0xa8f3b5[_0x374e('0x10')]['Smtp'][_0x374e('0x11')];_0x560174[_0x374e('0x12')]=_0xa8f3b5[_0x374e('0x10')][_0x374e('0xd')][_0x374e('0x12')];}if(_0xa8f3b5['MailAccount'][_0x374e('0xd')][_0x374e('0x13')]){_0x560174['auth']={'user':_0xa8f3b5[_0x374e('0x10')][_0x374e('0xd')]['user'],'pass':_0xa8f3b5[_0x374e('0x10')]['Smtp'][_0x374e('0x14')]};}var _0x2fe4d8={'account':_0x560174,'message':{'from':util['format'](_0x374e('0x15'),_0xa8f3b5['MailAccount']['name'],_0xa8f3b5[_0x374e('0x10')][_0x374e('0x16')]||_0xa8f3b5[_0x374e('0x10')]['Smtp']['user']),'to':_0xa8f3b5[_0x374e('0x16')],'cc':_0xa8f3b5['cc'],'bcc':_0xa8f3b5[_0x374e('0x17')],'subject':util[_0x374e('0x18')](_0x374e('0x19'),_0x1ef855[_0x374e('0x1a')],_0xa8f3b5[_0x374e('0x1b')],_0xa8f3b5[_0x374e('0x1c')])}};var _0x4e1252=path[_0x374e('0x1d')](__dirname,_0x374e('0x1e'));var _0x346baa=_0x1ef855[_0x374e('0x1f')];var _0x3db024=util['format'](_0x374e('0x20'),path['basename'](_0x1ef855['savename'],path['extname'](_0x1ef855['savename'])),_0x374e('0x21'));var _0x327b74=path[_0x374e('0x1d')](_0x4e1252,_0x346baa);var _0x31e0fb=path['join'](_0x4e1252,_0x3db024);if(fs['existsSync'](_0x327b74)){_0x1ef855[_0x374e('0x22')]=_0x374e('0x23');_0x2fe4d8[_0x374e('0x24')][_0x374e('0x25')]=[{'filename':_0x346baa,'path':_0x327b74}];_0x2fe4d8['message'][_0x374e('0x26')]=util[_0x374e('0x18')](_0x374e('0x27'),JSON[_0x374e('0x28')](_0x1ef855,null,0x2));}else if(fs[_0x374e('0x29')](_0x31e0fb)){_0x1ef855['status']=_0x374e('0x23');_0x2fe4d8['message'][_0x374e('0x25')]=[{'filename':_0x3db024,'path':_0x31e0fb}];}else{_0x2fe4d8['message'][_0x374e('0x26')]=_0x374e('0x2a');if(!_0xa8f3b5['sendIfEmpty']){_0x2fe83a=![];logger[_0x374e('0xb')](_0x374e('0x2b'));}}if(_0x2fe83a){return client[_0x374e('0x2c')](_0x374e('0x2d'),_0x2fe4d8)[_0x374e('0x2e')](function(_0xdcf50b){if(_0xdcf50b[_0x374e('0x2f')]){return logger['error'](_0x374e('0x30'),JSON[_0x374e('0x28')](_0xdcf50b));}return logger[_0x374e('0xb')](_0x374e('0x31'));})[_0x374e('0x32')](function(_0xb00ce0){return logger[_0x374e('0x2f')]('error\x20mail',JSON[_0x374e('0x28')](_0xb00ce0));});}};}function handleError(){return function(_0x50f8c7){return logger[_0x374e('0x2f')](JSON[_0x374e('0x28')](_0x50f8c7));};}function handleResult(_0x2d6738){return function(_0x154299){logger[_0x374e('0xb')](_0x374e('0x33'),JSON[_0x374e('0x28')](_0x154299));if(_0x2d6738['MailAccount']&&_0x2d6738[_0x374e('0x10')][_0x374e('0xd')]&&!_['isNil'](_0x2d6738[_0x374e('0x16')])){setTimeout(handleSendEmail(_0x2d6738,_0x154299),0x3c*0x3e8);}};}function handleJob(_0x3d116b){return function(){try{if(_[_0x374e('0x34')](_0x3d116b[_0x374e('0x1b')])){return logger[_0x374e('0xb')](_0x374e('0x35'));}if(_[_0x374e('0x34')](_0x3d116b['subtractUnit'])){return logger[_0x374e('0xb')](_0x374e('0x36'));}var _0x365837={'startDate':moment()[_0x374e('0x37')](_0x3d116b[_0x374e('0x1b')],_0x3d116b[_0x374e('0x1c')])[_0x374e('0x18')](_0x374e('0x38')),'endDate':moment()[_0x374e('0x18')](_0x374e('0x38')),'type':_0x374e('0x39'),'output':_0x3d116b[_0x374e('0x3a')],'name':_0x3d116b[_0x374e('0x1a')]};if(!_[_0x374e('0x34')](_0x3d116b['DefaultReportId'])){logger[_0x374e('0xb')]('exec\x20defaul\x20report\x20id:%s',_0x3d116b['DefaultReportId']);return analyticDefaultReportController[_0x374e('0x3b')]({'id':_0x3d116b[_0x374e('0x3c')]},_0x365837)[_0x374e('0x2e')](handleResult(_0x3d116b))[_0x374e('0x32')](handleError());}if(!_[_0x374e('0x34')](_0x3d116b[_0x374e('0x3d')])){logger[_0x374e('0xb')]('exec\x20custom\x20report\x20id:%s',_0x3d116b[_0x374e('0x3d')]);return analyticCustomReportController[_0x374e('0x3b')]({'id':_0x3d116b[_0x374e('0x3d')]},_0x365837)[_0x374e('0x2e')](handleResult(_0x3d116b))[_0x374e('0x32')](handleError());}}catch(_0x24e793){logger[_0x374e('0x2f')](JSON['stringify'](_0x24e793));}return logger[_0x374e('0xb')]('no\x20report\x20id');};}function getJobs(_0x118c1b){var _0x35ca5e={};if(_0x118c1b){_0x35ca5e['id']=_0x118c1b;}return db[_0x374e('0x3e')][_0x374e('0x3f')]({'where':_0x35ca5e,'include':[{'model':db[_0x374e('0x10')],'attributes':['id','name','email'],'include':[{'model':db[_0x374e('0x40')],'as':_0x374e('0xd')}]}]})[_0x374e('0x2e')](function(_0x421940){var _0x5eba60=_['keys'](manager[_0x374e('0x41')]);var _0x5140a8=_[_0x374e('0x42')](_0x421940,function(_0x45899d){return _0x45899d['id'][_0x374e('0x43')]();});var _0x5ab2e6=_[_0x374e('0x44')](_0x421940,function(_0x358739){return _0x358739['id']['toString']();});var _0x3d9a55=_0x118c1b?_0x5140a8:_[_0x374e('0x45')](_0x5140a8,_0x5eba60);var _0x29a937=_[_0x374e('0x46')](_0x5140a8,_0x5eba60);var _0x53a29e=_['difference'](_0x5eba60,_0x5140a8);var _0x1e5dde;var _0x88abf4;for(_0x1e5dde=0x0;_0x1e5dde<_0x53a29e[_0x374e('0x47')]&&!_0x118c1b;_0x1e5dde+=0x1){_0x88abf4=_0x53a29e[_0x1e5dde][_0x374e('0x43')]();if(manager[_0x374e('0x48')](_0x88abf4)){manager[_0x374e('0x49')](_0x88abf4);manager[_0x374e('0x4a')](_0x88abf4);logger[_0x374e('0xb')]('delete\x20cron',_0x88abf4);}}logger[_0x374e('0xb')](_0x374e('0x4b'),JSON[_0x374e('0x28')](_0x3d9a55));for(_0x1e5dde=0x0;_0x1e5dde<_0x3d9a55[_0x374e('0x47')];_0x1e5dde+=0x1){_0x88abf4=_0x3d9a55[_0x1e5dde][_0x374e('0x43')]();logger['info']('index',_0x88abf4);if(_0x118c1b){logger[_0x374e('0xb')](_0x374e('0x4c'),_0x118c1b);logger['info'](JSON[_0x374e('0x28')](_0x5ab2e6[_0x88abf4]));BPromise['resolve']()[_0x374e('0x2e')](handleJob(_0x5ab2e6[_0x88abf4]));logger[_0x374e('0xb')](_0x374e('0x4d'),_0x5ab2e6[_0x88abf4][_0x374e('0x1a')],_0x5ab2e6[_0x88abf4][_0x374e('0x4e')]);}else if(_0x5ab2e6[_0x88abf4][_0x374e('0x4e')]&&_0x5ab2e6[_0x88abf4]['active']&&moment()[_0x374e('0x4f')](_0x5ab2e6[_0x88abf4][_0x374e('0x50')],_0x5ab2e6[_0x88abf4][_0x374e('0x51')])){manager[_0x374e('0x52')](_0x88abf4,_0x5ab2e6[_0x88abf4]['cron'],handleJob(_0x5ab2e6[_0x88abf4]));manager[_0x374e('0x53')](_0x88abf4);logger[_0x374e('0xb')](_0x374e('0x54'),_0x5ab2e6[_0x88abf4]['name'],_0x5ab2e6[_0x88abf4][_0x374e('0x4e')]);}else if(manager[_0x374e('0x48')](_0x88abf4)){manager[_0x374e('0x49')](_0x88abf4);manager[_0x374e('0x4a')](_0x88abf4);logger[_0x374e('0xb')](_0x374e('0x55'),_0x5ab2e6[_0x88abf4]['name'],_0x5ab2e6[_0x88abf4][_0x374e('0x4e')]);}}for(_0x1e5dde=0x0,_0x88abf4;_0x1e5dde<_0x29a937[_0x374e('0x47')]&&!_0x118c1b;_0x1e5dde+=0x1){_0x88abf4=_0x29a937[_0x1e5dde][_0x374e('0x43')]();if(manager[_0x374e('0x48')](_0x88abf4)){if(_0x5ab2e6[_0x88abf4][_0x374e('0x4e')]&&_0x5ab2e6[_0x88abf4][_0x374e('0x56')]&&moment()[_0x374e('0x4f')](_0x5ab2e6[_0x88abf4][_0x374e('0x50')],_0x5ab2e6[_0x88abf4][_0x374e('0x51')])){manager[_0x374e('0x57')](_0x88abf4,_0x5ab2e6[_0x88abf4][_0x374e('0x4e')],handleJob(_0x5ab2e6[_0x88abf4]));logger[_0x374e('0xb')](_0x374e('0x58'),_0x5ab2e6[_0x88abf4]['name'],_0x5ab2e6[_0x88abf4]['cron']);}else{manager['stop'](_0x88abf4);manager['deleteJob'](_0x88abf4);logger[_0x374e('0xb')](_0x374e('0x55'),_0x5ab2e6[_0x88abf4][_0x374e('0x1a')],_0x5ab2e6[_0x88abf4][_0x374e('0x4e')]);}}}})[_0x374e('0x32')](function(_0x457636){logger[_0x374e('0x2f')](JSON['stringify'](_0x457636));});}exports[_0x374e('0x59')]=function(_0x3a194b){return getJobs(_0x3a194b);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};