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 _0xe6e8=['keyBy','difference','length','stop','deleteJob','delete\x20cron','toRun','my\x20id','run\x20job','cron','active','isBetween','endAt','add','start','add\x20cron','exists','startAt','update\x20cron','stop\x20cron','run','util','path','lodash','moment','cron-job-manager','jayson/promise','bluebird','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','service','Smtp','host','port','secure','authentication','auth','pass','format','\x22%s\x22\x20<%s>','name','user','bcc','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','attachments','message','text','stringify','status','Sent','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','info','empty\x20file,\x20email\x20not\x20sent','SendMail','then','error','error\x20mail','email\x20sent','catch','data','isNil','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','MailServerOut','keys','jobs','map','toString'];(function(_0x2c86bc,_0x19f707){var _0x503e79=function(_0x45024b){while(--_0x45024b){_0x2c86bc['push'](_0x2c86bc['shift']());}};_0x503e79(++_0x19f707);}(_0xe6e8,0xc9));var _0x8e6e=function(_0x6a2406,_0x29bb3e){_0x6a2406=_0x6a2406-0x0;var _0x41670d=_0xe6e8[_0x6a2406];return _0x41670d;};'use strict';var fs=require('fs');var util=require(_0x8e6e('0x0'));var path=require(_0x8e6e('0x1'));var _=require(_0x8e6e('0x2'));var moment=require(_0x8e6e('0x3'));var CronJobManager=require(_0x8e6e('0x4'));var jayson=require(_0x8e6e('0x5'));var BPromise=require(_0x8e6e('0x6'));var logger=require(_0x8e6e('0x7'))('schedule');var db=require(_0x8e6e('0x8'))['db'];var analyticCustomReportController=require(_0x8e6e('0x9'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x8e6e('0xa')][_0x8e6e('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x54e2a6,_0x471ba2){return function(){logger['info'](_0x8e6e('0xc'),_0x54e2a6[_0x8e6e('0xd')]);var _0x3b23de=!![];var _0x166443={'tls':{'rejectUnauthorized':![]}};if(_0x54e2a6[_0x8e6e('0xe')]['Smtp']['service']){_0x166443[_0x8e6e('0xf')]=_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0x10')][_0x8e6e('0xf')];}else{_0x166443['host']=_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0x10')][_0x8e6e('0x11')];_0x166443[_0x8e6e('0x12')]=_0x54e2a6[_0x8e6e('0xe')]['Smtp'][_0x8e6e('0x12')];_0x166443[_0x8e6e('0x13')]=_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0x10')][_0x8e6e('0x13')];}if(_0x54e2a6['MailAccount']['Smtp'][_0x8e6e('0x14')]){_0x166443[_0x8e6e('0x15')]={'user':_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0x10')]['user'],'pass':_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0x10')][_0x8e6e('0x16')]};}var _0x15081b={'account':_0x166443,'message':{'from':util[_0x8e6e('0x17')](_0x8e6e('0x18'),_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0x19')],_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0xd')]||_0x54e2a6[_0x8e6e('0xe')][_0x8e6e('0x10')][_0x8e6e('0x1a')]),'to':_0x54e2a6[_0x8e6e('0xd')],'cc':_0x54e2a6['cc'],'bcc':_0x54e2a6[_0x8e6e('0x1b')],'subject':util[_0x8e6e('0x17')]('Report\x20%s\x20last\x20%s\x20%s',_0x471ba2[_0x8e6e('0x19')],_0x54e2a6[_0x8e6e('0x1c')],_0x54e2a6[_0x8e6e('0x1d')])}};var _0x123aa5=path[_0x8e6e('0x1e')](__dirname,_0x8e6e('0x1f'));var _0x49d2b7=_0x471ba2[_0x8e6e('0x20')];var _0x468dbf=util[_0x8e6e('0x17')](_0x8e6e('0x21'),path[_0x8e6e('0x22')](_0x471ba2['savename'],path[_0x8e6e('0x23')](_0x471ba2['savename'])),_0x8e6e('0x24'));var _0x599df0=path[_0x8e6e('0x1e')](_0x123aa5,_0x49d2b7);var _0x5e0983=path['join'](_0x123aa5,_0x468dbf);if(fs[_0x8e6e('0x25')](_0x599df0)){_0x471ba2['status']='Sent';_0x15081b['message'][_0x8e6e('0x26')]=[{'filename':_0x49d2b7,'path':_0x599df0}];_0x15081b[_0x8e6e('0x27')][_0x8e6e('0x28')]=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[_0x8e6e('0x29')](_0x471ba2,null,0x2));}else if(fs[_0x8e6e('0x25')](_0x5e0983)){_0x471ba2[_0x8e6e('0x2a')]=_0x8e6e('0x2b');_0x15081b[_0x8e6e('0x27')][_0x8e6e('0x26')]=[{'filename':_0x468dbf,'path':_0x5e0983}];}else{_0x15081b[_0x8e6e('0x27')][_0x8e6e('0x28')]=_0x8e6e('0x2c');if(!_0x54e2a6[_0x8e6e('0x2d')]){_0x3b23de=![];logger[_0x8e6e('0x2e')](_0x8e6e('0x2f'));}}if(_0x3b23de){return client['request'](_0x8e6e('0x30'),_0x15081b)[_0x8e6e('0x31')](function(_0x172984){if(_0x172984['error']){return logger[_0x8e6e('0x32')](_0x8e6e('0x33'),JSON['stringify'](_0x172984));}return logger[_0x8e6e('0x2e')](_0x8e6e('0x34'));})[_0x8e6e('0x35')](function(_0x5a4314){return logger['error']('error\x20mail',JSON[_0x8e6e('0x29')](_0x5a4314));});}};}function handleError(){return function(_0x5f011d){return logger[_0x8e6e('0x32')](JSON[_0x8e6e('0x29')](_0x5f011d));};}function handleResult(_0x2ba984){return function(_0x5bc3a1){logger[_0x8e6e('0x2e')](_0x8e6e('0x36'),JSON[_0x8e6e('0x29')](_0x5bc3a1));if(_0x2ba984[_0x8e6e('0xe')]&&_0x2ba984[_0x8e6e('0xe')][_0x8e6e('0x10')]&&!_[_0x8e6e('0x37')](_0x2ba984[_0x8e6e('0xd')])){setTimeout(handleSendEmail(_0x2ba984,_0x5bc3a1),0x3c*0x3e8);}};}function handleJob(_0x503046){return function(){try{if(_[_0x8e6e('0x37')](_0x503046['subtractNumber'])){return logger[_0x8e6e('0x2e')]('subtractNumber\x20null\x20or\x20undefined');}if(_['isNil'](_0x503046[_0x8e6e('0x1d')])){return logger[_0x8e6e('0x2e')]('subtractUnit\x20null\x20or\x20undefined');}var _0x488f67={'startDate':moment()[_0x8e6e('0x38')](_0x503046[_0x8e6e('0x1c')],_0x503046['subtractUnit'])[_0x8e6e('0x17')](_0x8e6e('0x39')),'endDate':moment()[_0x8e6e('0x17')](_0x8e6e('0x39')),'type':_0x8e6e('0x3a'),'output':_0x503046[_0x8e6e('0x3b')],'name':_0x503046[_0x8e6e('0x19')]};if(!_['isNil'](_0x503046[_0x8e6e('0x3c')])){logger[_0x8e6e('0x2e')]('exec\x20defaul\x20report\x20id:%s',_0x503046[_0x8e6e('0x3c')]);return analyticDefaultReportController[_0x8e6e('0x3d')]({'id':_0x503046[_0x8e6e('0x3c')]},_0x488f67)['then'](handleResult(_0x503046))[_0x8e6e('0x35')](handleError());}if(!_['isNil'](_0x503046[_0x8e6e('0x3e')])){logger[_0x8e6e('0x2e')](_0x8e6e('0x3f'),_0x503046['CustomReportId']);return analyticCustomReportController[_0x8e6e('0x3d')]({'id':_0x503046[_0x8e6e('0x3e')]},_0x488f67)[_0x8e6e('0x31')](handleResult(_0x503046))['catch'](handleError());}}catch(_0x262f94){logger[_0x8e6e('0x32')](JSON['stringify'](_0x262f94));}return logger[_0x8e6e('0x2e')]('no\x20report\x20id');};}function getJobs(_0x48aa55){var _0x2d914b={};if(_0x48aa55){_0x2d914b['id']=_0x48aa55;}return db['Schedule']['findAll']({'where':_0x2d914b,'include':[{'model':db[_0x8e6e('0xe')],'attributes':['id',_0x8e6e('0x19'),_0x8e6e('0xd')],'include':[{'model':db[_0x8e6e('0x40')],'as':_0x8e6e('0x10')}]}]})[_0x8e6e('0x31')](function(_0x44b63b){var _0x3432c5=_[_0x8e6e('0x41')](manager[_0x8e6e('0x42')]);var _0x664ee5=_[_0x8e6e('0x43')](_0x44b63b,function(_0xab37b2){return _0xab37b2['id'][_0x8e6e('0x44')]();});var _0x31bd96=_[_0x8e6e('0x45')](_0x44b63b,function(_0x533a64){return _0x533a64['id'][_0x8e6e('0x44')]();});var _0x30645b=_0x48aa55?_0x664ee5:_[_0x8e6e('0x46')](_0x664ee5,_0x3432c5);var _0x52615e=_['intersection'](_0x664ee5,_0x3432c5);var _0x117607=_[_0x8e6e('0x46')](_0x3432c5,_0x664ee5);var _0x59b5e1;var _0x3ceb21;for(_0x59b5e1=0x0;_0x59b5e1<_0x117607[_0x8e6e('0x47')]&&!_0x48aa55;_0x59b5e1+=0x1){_0x3ceb21=_0x117607[_0x59b5e1][_0x8e6e('0x44')]();if(manager['exists'](_0x3ceb21)){manager[_0x8e6e('0x48')](_0x3ceb21);manager[_0x8e6e('0x49')](_0x3ceb21);logger['info'](_0x8e6e('0x4a'),_0x3ceb21);}}logger['info'](_0x8e6e('0x4b'),JSON['stringify'](_0x30645b));for(_0x59b5e1=0x0;_0x59b5e1<_0x30645b['length'];_0x59b5e1+=0x1){_0x3ceb21=_0x30645b[_0x59b5e1][_0x8e6e('0x44')]();logger['info']('index',_0x3ceb21);if(_0x48aa55){logger[_0x8e6e('0x2e')](_0x8e6e('0x4c'),_0x48aa55);logger['info'](JSON[_0x8e6e('0x29')](_0x31bd96[_0x3ceb21]));BPromise['resolve']()['then'](handleJob(_0x31bd96[_0x3ceb21]));logger[_0x8e6e('0x2e')](_0x8e6e('0x4d'),_0x31bd96[_0x3ceb21][_0x8e6e('0x19')],_0x31bd96[_0x3ceb21][_0x8e6e('0x4e')]);}else if(_0x31bd96[_0x3ceb21]['cron']&&_0x31bd96[_0x3ceb21][_0x8e6e('0x4f')]&&moment()[_0x8e6e('0x50')](_0x31bd96[_0x3ceb21]['startAt'],_0x31bd96[_0x3ceb21][_0x8e6e('0x51')])){manager[_0x8e6e('0x52')](_0x3ceb21,_0x31bd96[_0x3ceb21]['cron'],handleJob(_0x31bd96[_0x3ceb21]));manager[_0x8e6e('0x53')](_0x3ceb21);logger[_0x8e6e('0x2e')](_0x8e6e('0x54'),_0x31bd96[_0x3ceb21][_0x8e6e('0x19')],_0x31bd96[_0x3ceb21][_0x8e6e('0x4e')]);}else if(manager[_0x8e6e('0x55')](_0x3ceb21)){manager[_0x8e6e('0x48')](_0x3ceb21);manager['deleteJob'](_0x3ceb21);logger[_0x8e6e('0x2e')]('stop\x20cron',_0x31bd96[_0x3ceb21][_0x8e6e('0x19')],_0x31bd96[_0x3ceb21][_0x8e6e('0x4e')]);}}for(_0x59b5e1=0x0,_0x3ceb21;_0x59b5e1<_0x52615e[_0x8e6e('0x47')]&&!_0x48aa55;_0x59b5e1+=0x1){_0x3ceb21=_0x52615e[_0x59b5e1][_0x8e6e('0x44')]();if(manager[_0x8e6e('0x55')](_0x3ceb21)){if(_0x31bd96[_0x3ceb21][_0x8e6e('0x4e')]&&_0x31bd96[_0x3ceb21][_0x8e6e('0x4f')]&&moment()['isBetween'](_0x31bd96[_0x3ceb21][_0x8e6e('0x56')],_0x31bd96[_0x3ceb21]['endAt'])){manager['update'](_0x3ceb21,_0x31bd96[_0x3ceb21][_0x8e6e('0x4e')],handleJob(_0x31bd96[_0x3ceb21]));logger[_0x8e6e('0x2e')](_0x8e6e('0x57'),_0x31bd96[_0x3ceb21][_0x8e6e('0x19')],_0x31bd96[_0x3ceb21][_0x8e6e('0x4e')]);}else{manager[_0x8e6e('0x48')](_0x3ceb21);manager[_0x8e6e('0x49')](_0x3ceb21);logger[_0x8e6e('0x2e')](_0x8e6e('0x58'),_0x31bd96[_0x3ceb21][_0x8e6e('0x19')],_0x31bd96[_0x3ceb21]['cron']);}}}})[_0x8e6e('0x35')](function(_0xd6f537){logger[_0x8e6e('0x32')](JSON[_0x8e6e('0x29')](_0xd6f537));});}exports[_0x8e6e('0x59')]=function(_0x1fe831){return getJobs(_0x1fe831);};exports[_0x8e6e('0x53')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};