Built motion from commit (unavailable).|2.4.8
[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 _0x4d18=['cron','isBetween','endAt','add','start','add\x20cron','exists','active','startAt','update','update\x20cron','stop\x20cron','run','moment','cron-job-manager','bluebird','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','MailAccount','service','host','Smtp','port','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','name','email','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','%s.%s','basename','savename','extname','zip','join','status','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','existsSync','Sent','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','error','stringify','email\x20sent','catch','error\x20mail','data','subtractNumber\x20null\x20or\x20undefined','isNil','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','then','exec\x20custom\x20report\x20id:%s','CustomReportId','no\x20report\x20id','findAll','MailServerOut','keys','jobs','map','keyBy','toString','difference','intersection','length','stop','deleteJob','delete\x20cron','toRun','index','resolve','run\x20job'];(function(_0x38d483,_0x4f67d8){var _0x527ec8=function(_0x122ae0){while(--_0x122ae0){_0x38d483['push'](_0x38d483['shift']());}};_0x527ec8(++_0x4f67d8);}(_0x4d18,0x124));var _0x84d1=function(_0x5d103f,_0x291d6b){_0x5d103f=_0x5d103f-0x0;var _0x1dda24=_0x4d18[_0x5d103f];return _0x1dda24;};'use strict';var fs=require('fs');var util=require('util');var path=require('path');var _=require('lodash');var moment=require(_0x84d1('0x0'));var CronJobManager=require(_0x84d1('0x1'));var jayson=require('jayson/promise');var BPromise=require(_0x84d1('0x2'));var logger=require('../logger')(_0x84d1('0x3'));var db=require(_0x84d1('0x4'))['db'];var analyticCustomReportController=require(_0x84d1('0x5'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x84d1('0x6')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x299fdb,_0x3433ad){return function(){logger[_0x84d1('0x7')](_0x84d1('0x8'),_0x299fdb['email']);var _0x5d5192=!![];var _0x14dcd9={'tls':{'rejectUnauthorized':![]}};if(_0x299fdb[_0x84d1('0x9')]['Smtp'][_0x84d1('0xa')]){_0x14dcd9['service']=_0x299fdb[_0x84d1('0x9')]['Smtp'][_0x84d1('0xa')];}else{_0x14dcd9[_0x84d1('0xb')]=_0x299fdb[_0x84d1('0x9')][_0x84d1('0xc')][_0x84d1('0xb')];_0x14dcd9[_0x84d1('0xd')]=_0x299fdb[_0x84d1('0x9')][_0x84d1('0xc')][_0x84d1('0xd')];_0x14dcd9['secure']=_0x299fdb[_0x84d1('0x9')][_0x84d1('0xc')][_0x84d1('0xe')];}if(_0x299fdb[_0x84d1('0x9')][_0x84d1('0xc')][_0x84d1('0xf')]){_0x14dcd9[_0x84d1('0x10')]={'user':_0x299fdb['MailAccount'][_0x84d1('0xc')][_0x84d1('0x11')],'pass':_0x299fdb[_0x84d1('0x9')][_0x84d1('0xc')][_0x84d1('0x12')]};}var _0x19eaa6={'account':_0x14dcd9,'message':{'from':util[_0x84d1('0x13')](_0x84d1('0x14'),_0x299fdb[_0x84d1('0x9')][_0x84d1('0x15')],_0x299fdb[_0x84d1('0x9')][_0x84d1('0x16')]||_0x299fdb[_0x84d1('0x9')]['Smtp'][_0x84d1('0x11')]),'to':_0x299fdb[_0x84d1('0x16')],'cc':_0x299fdb['cc'],'bcc':_0x299fdb[_0x84d1('0x17')],'subject':util['format'](_0x84d1('0x18'),_0x3433ad[_0x84d1('0x15')],_0x299fdb[_0x84d1('0x19')],_0x299fdb[_0x84d1('0x1a')])}};var _0x314ee2=path['join'](__dirname,'../../files/reports');var _0x5b54b8=_0x3433ad['savename'];var _0x20bdeb=util[_0x84d1('0x13')](_0x84d1('0x1b'),path[_0x84d1('0x1c')](_0x3433ad[_0x84d1('0x1d')],path[_0x84d1('0x1e')](_0x3433ad[_0x84d1('0x1d')])),_0x84d1('0x1f'));var _0x321029=path[_0x84d1('0x20')](_0x314ee2,_0x5b54b8);var _0xa2cbb0=path[_0x84d1('0x20')](_0x314ee2,_0x20bdeb);if(fs['existsSync'](_0x321029)){_0x3433ad[_0x84d1('0x21')]='Sent';_0x19eaa6[_0x84d1('0x22')][_0x84d1('0x23')]=[{'filename':_0x5b54b8,'path':_0x321029}];_0x19eaa6[_0x84d1('0x22')]['text']=util[_0x84d1('0x13')](_0x84d1('0x24'),JSON['stringify'](_0x3433ad,null,0x2));}else if(fs[_0x84d1('0x25')](_0xa2cbb0)){_0x3433ad[_0x84d1('0x21')]=_0x84d1('0x26');_0x19eaa6[_0x84d1('0x22')]['attachments']=[{'filename':_0x20bdeb,'path':_0xa2cbb0}];}else{_0x19eaa6[_0x84d1('0x22')][_0x84d1('0x27')]=_0x84d1('0x28');if(!_0x299fdb['sendIfEmpty']){_0x5d5192=![];logger['info'](_0x84d1('0x29'));}}if(_0x5d5192){return client[_0x84d1('0x2a')](_0x84d1('0x2b'),_0x19eaa6)['then'](function(_0x32e069){if(_0x32e069[_0x84d1('0x2c')]){return logger[_0x84d1('0x2c')]('error\x20mail',JSON[_0x84d1('0x2d')](_0x32e069));}return logger['info'](_0x84d1('0x2e'));})[_0x84d1('0x2f')](function(_0x298838){return logger[_0x84d1('0x2c')](_0x84d1('0x30'),JSON['stringify'](_0x298838));});}};}function handleError(){return function(_0x162202){return logger[_0x84d1('0x2c')](JSON[_0x84d1('0x2d')](_0x162202));};}function handleResult(_0x17b30f){return function(_0x26f568){logger[_0x84d1('0x7')](_0x84d1('0x31'),JSON[_0x84d1('0x2d')](_0x26f568));if(_0x17b30f[_0x84d1('0x9')]&&_0x17b30f[_0x84d1('0x9')][_0x84d1('0xc')]&&!_['isNil'](_0x17b30f[_0x84d1('0x16')])){setTimeout(handleSendEmail(_0x17b30f,_0x26f568),0x3c*0x3e8);}};}function handleJob(_0x3d6841){return function(){try{if(_['isNil'](_0x3d6841['subtractNumber'])){return logger[_0x84d1('0x7')](_0x84d1('0x32'));}if(_[_0x84d1('0x33')](_0x3d6841[_0x84d1('0x1a')])){return logger[_0x84d1('0x7')]('subtractUnit\x20null\x20or\x20undefined');}var _0x16cbd3={'startDate':moment()[_0x84d1('0x34')](_0x3d6841['subtractNumber'],_0x3d6841[_0x84d1('0x1a')])[_0x84d1('0x13')](_0x84d1('0x35')),'endDate':moment()[_0x84d1('0x13')](_0x84d1('0x35')),'type':_0x84d1('0x36'),'output':_0x3d6841[_0x84d1('0x37')],'name':_0x3d6841[_0x84d1('0x15')]};if(!_[_0x84d1('0x33')](_0x3d6841[_0x84d1('0x38')])){logger[_0x84d1('0x7')](_0x84d1('0x39'),_0x3d6841[_0x84d1('0x38')]);return analyticDefaultReportController[_0x84d1('0x3a')]({'id':_0x3d6841['DefaultReportId']},_0x16cbd3)[_0x84d1('0x3b')](handleResult(_0x3d6841))['catch'](handleError());}if(!_[_0x84d1('0x33')](_0x3d6841['CustomReportId'])){logger['info'](_0x84d1('0x3c'),_0x3d6841[_0x84d1('0x3d')]);return analyticCustomReportController[_0x84d1('0x3a')]({'id':_0x3d6841[_0x84d1('0x3d')]},_0x16cbd3)[_0x84d1('0x3b')](handleResult(_0x3d6841))[_0x84d1('0x2f')](handleError());}}catch(_0x3a7aa5){logger[_0x84d1('0x2c')](JSON['stringify'](_0x3a7aa5));}return logger[_0x84d1('0x7')](_0x84d1('0x3e'));};}function getJobs(_0x57c2b7){var _0x5191f2={};if(_0x57c2b7){_0x5191f2['id']=_0x57c2b7;}return db['Schedule'][_0x84d1('0x3f')]({'where':_0x5191f2,'include':[{'model':db[_0x84d1('0x9')],'attributes':['id',_0x84d1('0x15'),'email'],'include':[{'model':db[_0x84d1('0x40')],'as':_0x84d1('0xc')}]}]})['then'](function(_0x446098){var _0x2da839=_[_0x84d1('0x41')](manager[_0x84d1('0x42')]);var _0x4a1270=_[_0x84d1('0x43')](_0x446098,function(_0x3cf01d){return _0x3cf01d['id']['toString']();});var _0x59d157=_[_0x84d1('0x44')](_0x446098,function(_0x32f19f){return _0x32f19f['id'][_0x84d1('0x45')]();});var _0x3d2bc7=_0x57c2b7?_0x4a1270:_[_0x84d1('0x46')](_0x4a1270,_0x2da839);var _0x336a9a=_[_0x84d1('0x47')](_0x4a1270,_0x2da839);var _0x5bdfba=_[_0x84d1('0x46')](_0x2da839,_0x4a1270);var _0x21d9ea;var _0x254dbe;for(_0x21d9ea=0x0;_0x21d9ea<_0x5bdfba[_0x84d1('0x48')]&&!_0x57c2b7;_0x21d9ea+=0x1){_0x254dbe=_0x5bdfba[_0x21d9ea]['toString']();if(manager['exists'](_0x254dbe)){manager[_0x84d1('0x49')](_0x254dbe);manager[_0x84d1('0x4a')](_0x254dbe);logger[_0x84d1('0x7')](_0x84d1('0x4b'),_0x254dbe);}}logger[_0x84d1('0x7')](_0x84d1('0x4c'),JSON[_0x84d1('0x2d')](_0x3d2bc7));for(_0x21d9ea=0x0;_0x21d9ea<_0x3d2bc7[_0x84d1('0x48')];_0x21d9ea+=0x1){_0x254dbe=_0x3d2bc7[_0x21d9ea]['toString']();logger[_0x84d1('0x7')](_0x84d1('0x4d'),_0x254dbe);if(_0x57c2b7){logger[_0x84d1('0x7')]('my\x20id',_0x57c2b7);logger[_0x84d1('0x7')](JSON[_0x84d1('0x2d')](_0x59d157[_0x254dbe]));BPromise[_0x84d1('0x4e')]()['then'](handleJob(_0x59d157[_0x254dbe]));logger['info'](_0x84d1('0x4f'),_0x59d157[_0x254dbe][_0x84d1('0x15')],_0x59d157[_0x254dbe][_0x84d1('0x50')]);}else if(_0x59d157[_0x254dbe][_0x84d1('0x50')]&&_0x59d157[_0x254dbe]['active']&&moment()[_0x84d1('0x51')](_0x59d157[_0x254dbe]['startAt'],_0x59d157[_0x254dbe][_0x84d1('0x52')])){manager[_0x84d1('0x53')](_0x254dbe,_0x59d157[_0x254dbe][_0x84d1('0x50')],handleJob(_0x59d157[_0x254dbe]));manager[_0x84d1('0x54')](_0x254dbe);logger[_0x84d1('0x7')](_0x84d1('0x55'),_0x59d157[_0x254dbe][_0x84d1('0x15')],_0x59d157[_0x254dbe][_0x84d1('0x50')]);}else if(manager[_0x84d1('0x56')](_0x254dbe)){manager[_0x84d1('0x49')](_0x254dbe);manager[_0x84d1('0x4a')](_0x254dbe);logger[_0x84d1('0x7')]('stop\x20cron',_0x59d157[_0x254dbe]['name'],_0x59d157[_0x254dbe][_0x84d1('0x50')]);}}for(_0x21d9ea=0x0,_0x254dbe;_0x21d9ea<_0x336a9a[_0x84d1('0x48')]&&!_0x57c2b7;_0x21d9ea+=0x1){_0x254dbe=_0x336a9a[_0x21d9ea][_0x84d1('0x45')]();if(manager['exists'](_0x254dbe)){if(_0x59d157[_0x254dbe][_0x84d1('0x50')]&&_0x59d157[_0x254dbe][_0x84d1('0x57')]&&moment()['isBetween'](_0x59d157[_0x254dbe][_0x84d1('0x58')],_0x59d157[_0x254dbe][_0x84d1('0x52')])){manager[_0x84d1('0x59')](_0x254dbe,_0x59d157[_0x254dbe][_0x84d1('0x50')],handleJob(_0x59d157[_0x254dbe]));logger[_0x84d1('0x7')](_0x84d1('0x5a'),_0x59d157[_0x254dbe][_0x84d1('0x15')],_0x59d157[_0x254dbe][_0x84d1('0x50')]);}else{manager['stop'](_0x254dbe);manager[_0x84d1('0x4a')](_0x254dbe);logger[_0x84d1('0x7')](_0x84d1('0x5b'),_0x59d157[_0x254dbe][_0x84d1('0x15')],_0x59d157[_0x254dbe]['cron']);}}}})[_0x84d1('0x2f')](function(_0x49bb69){logger[_0x84d1('0x2c')](JSON['stringify'](_0x49bb69));});}exports[_0x84d1('0x5c')]=function(_0x6f57ab){return getJobs(_0x6f57ab);};exports[_0x84d1('0x54')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};