Built motion from commit (unavailable).|2.4.18
[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 _0x9aad=['empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','stringify','catch','data','isNil','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','CustomReportId','exec\x20custom\x20report\x20id:%s','runReport','no\x20report\x20id','Schedule','MailServerOut','keys','jobs','toString','keyBy','intersection','difference','length','exists','stop','deleteJob','delete\x20cron','toRun','resolve','run\x20job','cron','active','isBetween','endAt','add','start','stop\x20cron','update','run','util','path','lodash','moment','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','pass','\x22%s\x22\x20<%s>','format','Report\x20%s\x20last\x20%s\x20%s','name','subtractNumber','subtractUnit','join','../../files/reports','savename','basename','extname','zip','existsSync','status','Sent','message','attachments','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','text','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a'];(function(_0x5801be,_0x27ac00){var _0x498d45=function(_0x2f1bf2){while(--_0x2f1bf2){_0x5801be['push'](_0x5801be['shift']());}};_0x498d45(++_0x27ac00);}(_0x9aad,0x18c));var _0xd9aa=function(_0x2ea716,_0x247e9e){_0x2ea716=_0x2ea716-0x0;var _0x5dd3b2=_0x9aad[_0x2ea716];return _0x5dd3b2;};'use strict';var fs=require('fs');var util=require(_0xd9aa('0x0'));var path=require(_0xd9aa('0x1'));var _=require(_0xd9aa('0x2'));var moment=require(_0xd9aa('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require(_0xd9aa('0x4'));var BPromise=require(_0xd9aa('0x5'));var logger=require(_0xd9aa('0x6'))(_0xd9aa('0x7'));var db=require(_0xd9aa('0x8'))['db'];var analyticCustomReportController=require(_0xd9aa('0x9'));var analyticDefaultReportController=require(_0xd9aa('0xa'));var client=jayson[_0xd9aa('0xb')][_0xd9aa('0xc')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x32ebce,_0x3278e2){return function(){logger[_0xd9aa('0xd')](_0xd9aa('0xe'),_0x32ebce[_0xd9aa('0xf')]);var _0x12b97f=!![];var _0x217e4a={'tls':{'rejectUnauthorized':![]}};if(_0x32ebce[_0xd9aa('0x10')][_0xd9aa('0x11')][_0xd9aa('0x12')]){_0x217e4a[_0xd9aa('0x12')]=_0x32ebce['MailAccount'][_0xd9aa('0x11')][_0xd9aa('0x12')];}else{_0x217e4a[_0xd9aa('0x13')]=_0x32ebce['MailAccount']['Smtp'][_0xd9aa('0x13')];_0x217e4a[_0xd9aa('0x14')]=_0x32ebce[_0xd9aa('0x10')][_0xd9aa('0x11')][_0xd9aa('0x14')];_0x217e4a[_0xd9aa('0x15')]=_0x32ebce[_0xd9aa('0x10')][_0xd9aa('0x11')][_0xd9aa('0x15')];}if(_0x32ebce['MailAccount'][_0xd9aa('0x11')][_0xd9aa('0x16')]){_0x217e4a['auth']={'user':_0x32ebce[_0xd9aa('0x10')][_0xd9aa('0x11')]['user'],'pass':_0x32ebce[_0xd9aa('0x10')][_0xd9aa('0x11')][_0xd9aa('0x17')]};}var _0x4e8f8c={'account':_0x217e4a,'message':{'from':util['format'](_0xd9aa('0x18'),_0x32ebce[_0xd9aa('0x10')]['name'],_0x32ebce[_0xd9aa('0x10')][_0xd9aa('0xf')]||_0x32ebce[_0xd9aa('0x10')]['Smtp']['user']),'to':_0x32ebce['email'],'cc':_0x32ebce['cc'],'bcc':_0x32ebce['bcc'],'subject':util[_0xd9aa('0x19')](_0xd9aa('0x1a'),_0x3278e2[_0xd9aa('0x1b')],_0x32ebce[_0xd9aa('0x1c')],_0x32ebce[_0xd9aa('0x1d')])}};var _0x124a13=path[_0xd9aa('0x1e')](__dirname,_0xd9aa('0x1f'));var _0x2fcc46=_0x3278e2[_0xd9aa('0x20')];var _0x56c8b1=util[_0xd9aa('0x19')]('%s.%s',path[_0xd9aa('0x21')](_0x3278e2[_0xd9aa('0x20')],path[_0xd9aa('0x22')](_0x3278e2[_0xd9aa('0x20')])),_0xd9aa('0x23'));var _0x150186=path[_0xd9aa('0x1e')](_0x124a13,_0x2fcc46);var _0x3a28d0=path[_0xd9aa('0x1e')](_0x124a13,_0x56c8b1);if(fs[_0xd9aa('0x24')](_0x150186)){_0x3278e2[_0xd9aa('0x25')]=_0xd9aa('0x26');_0x4e8f8c[_0xd9aa('0x27')][_0xd9aa('0x28')]=[{'filename':_0x2fcc46,'path':_0x150186}];_0x4e8f8c['message']['text']=util[_0xd9aa('0x19')](_0xd9aa('0x29'),JSON['stringify'](_0x3278e2,null,0x2));}else if(fs[_0xd9aa('0x24')](_0x3a28d0)){_0x3278e2[_0xd9aa('0x25')]='Sent';_0x4e8f8c[_0xd9aa('0x27')][_0xd9aa('0x28')]=[{'filename':_0x56c8b1,'path':_0x3a28d0}];}else{_0x4e8f8c['message'][_0xd9aa('0x2a')]=_0xd9aa('0x2b');if(!_0x32ebce['sendIfEmpty']){_0x12b97f=![];logger[_0xd9aa('0xd')](_0xd9aa('0x2c'));}}if(_0x12b97f){return client[_0xd9aa('0x2d')](_0xd9aa('0x2e'),_0x4e8f8c)[_0xd9aa('0x2f')](function(_0x5efff0){if(_0x5efff0[_0xd9aa('0x30')]){return logger[_0xd9aa('0x30')](_0xd9aa('0x31'),JSON[_0xd9aa('0x32')](_0x5efff0));}return logger['info']('email\x20sent');})[_0xd9aa('0x33')](function(_0x4b421e){return logger[_0xd9aa('0x30')](_0xd9aa('0x31'),JSON['stringify'](_0x4b421e));});}};}function handleError(){return function(_0x59d878){return logger[_0xd9aa('0x30')](JSON['stringify'](_0x59d878));};}function handleResult(_0x306a85){return function(_0x2a99a5){logger[_0xd9aa('0xd')](_0xd9aa('0x34'),JSON[_0xd9aa('0x32')](_0x2a99a5));if(_0x306a85[_0xd9aa('0x10')]&&_0x306a85[_0xd9aa('0x10')][_0xd9aa('0x11')]&&!_[_0xd9aa('0x35')](_0x306a85[_0xd9aa('0xf')])){setTimeout(handleSendEmail(_0x306a85,_0x2a99a5),0x3c*0x3e8);}};}function handleJob(_0x416418){return function(){try{if(_['isNil'](_0x416418[_0xd9aa('0x1c')])){return logger[_0xd9aa('0xd')]('subtractNumber\x20null\x20or\x20undefined');}if(_[_0xd9aa('0x35')](_0x416418[_0xd9aa('0x1d')])){return logger[_0xd9aa('0xd')](_0xd9aa('0x36'));}var _0x2bdb42={'startDate':moment()[_0xd9aa('0x37')](_0x416418[_0xd9aa('0x1c')],_0x416418[_0xd9aa('0x1d')])['format'](_0xd9aa('0x38')),'endDate':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'type':_0xd9aa('0x39'),'output':_0x416418['output'],'name':_0x416418[_0xd9aa('0x1b')]};if(!_[_0xd9aa('0x35')](_0x416418[_0xd9aa('0x3a')])){logger[_0xd9aa('0xd')]('exec\x20defaul\x20report\x20id:%s',_0x416418['DefaultReportId']);return analyticDefaultReportController['runReport']({'id':_0x416418[_0xd9aa('0x3a')]},_0x2bdb42)[_0xd9aa('0x2f')](handleResult(_0x416418))[_0xd9aa('0x33')](handleError());}if(!_[_0xd9aa('0x35')](_0x416418[_0xd9aa('0x3b')])){logger[_0xd9aa('0xd')](_0xd9aa('0x3c'),_0x416418[_0xd9aa('0x3b')]);return analyticCustomReportController[_0xd9aa('0x3d')]({'id':_0x416418[_0xd9aa('0x3b')]},_0x2bdb42)['then'](handleResult(_0x416418))[_0xd9aa('0x33')](handleError());}}catch(_0x4d4d6f){logger[_0xd9aa('0x30')](JSON[_0xd9aa('0x32')](_0x4d4d6f));}return logger['info'](_0xd9aa('0x3e'));};}function getJobs(_0xa1e1ec){var _0x5bdf5b={};if(_0xa1e1ec){_0x5bdf5b['id']=_0xa1e1ec;}return db[_0xd9aa('0x3f')]['findAll']({'where':_0x5bdf5b,'include':[{'model':db[_0xd9aa('0x10')],'attributes':['id',_0xd9aa('0x1b'),_0xd9aa('0xf')],'include':[{'model':db[_0xd9aa('0x40')],'as':_0xd9aa('0x11')}]}]})[_0xd9aa('0x2f')](function(_0x24a67c){var _0x46e596=_[_0xd9aa('0x41')](manager[_0xd9aa('0x42')]);var _0x560948=_['map'](_0x24a67c,function(_0x1f52e6){return _0x1f52e6['id'][_0xd9aa('0x43')]();});var _0x12eb21=_[_0xd9aa('0x44')](_0x24a67c,function(_0x2cbcbd){return _0x2cbcbd['id']['toString']();});var _0xb667ce=_0xa1e1ec?_0x560948:_['difference'](_0x560948,_0x46e596);var _0x733d02=_[_0xd9aa('0x45')](_0x560948,_0x46e596);var _0x22d3b2=_[_0xd9aa('0x46')](_0x46e596,_0x560948);var _0x3d9186;var _0x34e0b7;for(_0x3d9186=0x0;_0x3d9186<_0x22d3b2[_0xd9aa('0x47')]&&!_0xa1e1ec;_0x3d9186+=0x1){_0x34e0b7=_0x22d3b2[_0x3d9186][_0xd9aa('0x43')]();if(manager[_0xd9aa('0x48')](_0x34e0b7)){manager[_0xd9aa('0x49')](_0x34e0b7);manager[_0xd9aa('0x4a')](_0x34e0b7);logger[_0xd9aa('0xd')](_0xd9aa('0x4b'),_0x34e0b7);}}logger['info'](_0xd9aa('0x4c'),JSON[_0xd9aa('0x32')](_0xb667ce));for(_0x3d9186=0x0;_0x3d9186<_0xb667ce[_0xd9aa('0x47')];_0x3d9186+=0x1){_0x34e0b7=_0xb667ce[_0x3d9186][_0xd9aa('0x43')]();logger[_0xd9aa('0xd')]('index',_0x34e0b7);if(_0xa1e1ec){logger[_0xd9aa('0xd')]('my\x20id',_0xa1e1ec);logger[_0xd9aa('0xd')](JSON[_0xd9aa('0x32')](_0x12eb21[_0x34e0b7]));BPromise[_0xd9aa('0x4d')]()['then'](handleJob(_0x12eb21[_0x34e0b7]));logger[_0xd9aa('0xd')](_0xd9aa('0x4e'),_0x12eb21[_0x34e0b7][_0xd9aa('0x1b')],_0x12eb21[_0x34e0b7][_0xd9aa('0x4f')]);}else if(_0x12eb21[_0x34e0b7]['cron']&&_0x12eb21[_0x34e0b7][_0xd9aa('0x50')]&&moment()[_0xd9aa('0x51')](_0x12eb21[_0x34e0b7]['startAt'],_0x12eb21[_0x34e0b7][_0xd9aa('0x52')])){manager[_0xd9aa('0x53')](_0x34e0b7,_0x12eb21[_0x34e0b7]['cron'],handleJob(_0x12eb21[_0x34e0b7]));manager[_0xd9aa('0x54')](_0x34e0b7);logger[_0xd9aa('0xd')]('add\x20cron',_0x12eb21[_0x34e0b7]['name'],_0x12eb21[_0x34e0b7][_0xd9aa('0x4f')]);}else if(manager[_0xd9aa('0x48')](_0x34e0b7)){manager[_0xd9aa('0x49')](_0x34e0b7);manager[_0xd9aa('0x4a')](_0x34e0b7);logger[_0xd9aa('0xd')](_0xd9aa('0x55'),_0x12eb21[_0x34e0b7][_0xd9aa('0x1b')],_0x12eb21[_0x34e0b7]['cron']);}}for(_0x3d9186=0x0,_0x34e0b7;_0x3d9186<_0x733d02[_0xd9aa('0x47')]&&!_0xa1e1ec;_0x3d9186+=0x1){_0x34e0b7=_0x733d02[_0x3d9186]['toString']();if(manager[_0xd9aa('0x48')](_0x34e0b7)){if(_0x12eb21[_0x34e0b7][_0xd9aa('0x4f')]&&_0x12eb21[_0x34e0b7][_0xd9aa('0x50')]&&moment()[_0xd9aa('0x51')](_0x12eb21[_0x34e0b7]['startAt'],_0x12eb21[_0x34e0b7][_0xd9aa('0x52')])){manager[_0xd9aa('0x56')](_0x34e0b7,_0x12eb21[_0x34e0b7][_0xd9aa('0x4f')],handleJob(_0x12eb21[_0x34e0b7]));logger[_0xd9aa('0xd')]('update\x20cron',_0x12eb21[_0x34e0b7]['name'],_0x12eb21[_0x34e0b7][_0xd9aa('0x4f')]);}else{manager[_0xd9aa('0x49')](_0x34e0b7);manager[_0xd9aa('0x4a')](_0x34e0b7);logger[_0xd9aa('0xd')](_0xd9aa('0x55'),_0x12eb21[_0x34e0b7][_0xd9aa('0x1b')],_0x12eb21[_0x34e0b7][_0xd9aa('0x4f')]);}}}})[_0xd9aa('0x33')](function(_0x229dc4){logger[_0xd9aa('0x30')](JSON[_0xd9aa('0x32')](_0x229dc4));});}exports[_0xd9aa('0x57')]=function(_0x2cdfaa){return getJobs(_0x2cdfaa);};exports[_0xd9aa('0x54')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};