Built motion from commit (unavailable).|2.5.31
[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 _0xa07a=['CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','MailServerOut','jobs','map','toString','keyBy','difference','exists','delete\x20cron','index','my\x20id','resolve','run\x20job','cron','isBetween','startAt','endAt','start','length','active','stop','deleteJob','stop\x20cron','run','path','lodash','moment','cron-job-manager','jayson/promise','bluebird','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','service','Smtp','host','port','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','bcc','name','subtractNumber','subtractUnit','join','../../files/reports','savename','extname','status','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','existsSync','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','request','SendMail','then','error','stringify','email\x20sent','catch','error\x20mail','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport'];(function(_0x39c684,_0x1e0093){var _0x3da800=function(_0x2ac946){while(--_0x2ac946){_0x39c684['push'](_0x39c684['shift']());}};_0x3da800(++_0x1e0093);}(_0xa07a,0x11e));var _0xaa07=function(_0x51ef2b,_0x37f6a6){_0x51ef2b=_0x51ef2b-0x0;var _0x296beb=_0xa07a[_0x51ef2b];return _0x296beb;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0xaa07('0x0'));var _=require(_0xaa07('0x1'));var moment=require(_0xaa07('0x2'));var CronJobManager=require(_0xaa07('0x3'));var jayson=require(_0xaa07('0x4'));var BPromise=require(_0xaa07('0x5'));var logger=require('../logger')('schedule');var db=require(_0xaa07('0x6'))['db'];var analyticCustomReportController=require(_0xaa07('0x7'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0xaa07('0x8')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x39d33,_0x19b331){return function(){logger['info'](_0xaa07('0x9'),_0x39d33[_0xaa07('0xa')]);var _0x34843d=!![];var _0x553f00={'tls':{'rejectUnauthorized':![]}};if(_0x39d33[_0xaa07('0xb')]['Smtp'][_0xaa07('0xc')]){_0x553f00[_0xaa07('0xc')]=_0x39d33['MailAccount'][_0xaa07('0xd')]['service'];}else{_0x553f00[_0xaa07('0xe')]=_0x39d33['MailAccount'][_0xaa07('0xd')][_0xaa07('0xe')];_0x553f00[_0xaa07('0xf')]=_0x39d33[_0xaa07('0xb')][_0xaa07('0xd')][_0xaa07('0xf')];_0x553f00['secure']=_0x39d33['MailAccount'][_0xaa07('0xd')]['secure'];}if(_0x39d33[_0xaa07('0xb')][_0xaa07('0xd')][_0xaa07('0x10')]){_0x553f00[_0xaa07('0x11')]={'user':_0x39d33['MailAccount'][_0xaa07('0xd')][_0xaa07('0x12')],'pass':_0x39d33['MailAccount'][_0xaa07('0xd')][_0xaa07('0x13')]};}var _0x19d589={'account':_0x553f00,'message':{'from':util[_0xaa07('0x14')](_0xaa07('0x15'),_0x39d33[_0xaa07('0xb')]['name'],_0x39d33[_0xaa07('0xb')][_0xaa07('0xa')]||_0x39d33[_0xaa07('0xb')][_0xaa07('0xd')][_0xaa07('0x12')]),'to':_0x39d33[_0xaa07('0xa')],'cc':_0x39d33['cc'],'bcc':_0x39d33[_0xaa07('0x16')],'subject':util[_0xaa07('0x14')]('Report\x20%s\x20last\x20%s\x20%s',_0x19b331[_0xaa07('0x17')],_0x39d33[_0xaa07('0x18')],_0x39d33[_0xaa07('0x19')])}};var _0x315890=path[_0xaa07('0x1a')](__dirname,_0xaa07('0x1b'));var _0x1cc758=_0x19b331['savename'];var _0x3ccfaf=util[_0xaa07('0x14')]('%s.%s',path['basename'](_0x19b331[_0xaa07('0x1c')],path[_0xaa07('0x1d')](_0x19b331['savename'])),'zip');var _0x503b70=path[_0xaa07('0x1a')](_0x315890,_0x1cc758);var _0x4040a6=path[_0xaa07('0x1a')](_0x315890,_0x3ccfaf);if(fs['existsSync'](_0x503b70)){_0x19b331[_0xaa07('0x1e')]='Sent';_0x19d589[_0xaa07('0x1f')][_0xaa07('0x20')]=[{'filename':_0x1cc758,'path':_0x503b70}];_0x19d589[_0xaa07('0x1f')][_0xaa07('0x21')]=util[_0xaa07('0x14')](_0xaa07('0x22'),JSON['stringify'](_0x19b331,null,0x2));}else if(fs[_0xaa07('0x23')](_0x4040a6)){_0x19b331[_0xaa07('0x1e')]=_0xaa07('0x24');_0x19d589[_0xaa07('0x1f')][_0xaa07('0x20')]=[{'filename':_0x3ccfaf,'path':_0x4040a6}];}else{_0x19d589[_0xaa07('0x1f')][_0xaa07('0x21')]=_0xaa07('0x25');if(!_0x39d33[_0xaa07('0x26')]){_0x34843d=![];logger[_0xaa07('0x27')](_0xaa07('0x28'));}}if(_0x34843d){return client[_0xaa07('0x29')](_0xaa07('0x2a'),_0x19d589)[_0xaa07('0x2b')](function(_0x5cb18c){if(_0x5cb18c[_0xaa07('0x2c')]){return logger[_0xaa07('0x2c')]('error\x20mail',JSON[_0xaa07('0x2d')](_0x5cb18c));}return logger[_0xaa07('0x27')](_0xaa07('0x2e'));})[_0xaa07('0x2f')](function(_0x4700c0){return logger[_0xaa07('0x2c')](_0xaa07('0x30'),JSON[_0xaa07('0x2d')](_0x4700c0));});}};}function handleError(){return function(_0x44af10){return logger['error'](JSON['stringify'](_0x44af10));};}function handleResult(_0x40444d){return function(_0x3477ad){logger['info']('data',JSON[_0xaa07('0x2d')](_0x3477ad));if(_0x40444d['MailAccount']&&_0x40444d['MailAccount'][_0xaa07('0xd')]&&!_[_0xaa07('0x31')](_0x40444d['email'])){setTimeout(handleSendEmail(_0x40444d,_0x3477ad),0x3c*0x3e8);}};}function handleJob(_0x3e3534){return function(){try{if(_[_0xaa07('0x31')](_0x3e3534[_0xaa07('0x18')])){return logger[_0xaa07('0x27')](_0xaa07('0x32'));}if(_['isNil'](_0x3e3534['subtractUnit'])){return logger[_0xaa07('0x27')](_0xaa07('0x33'));}var _0x393ddc={'startDate':moment()['subtract'](_0x3e3534['subtractNumber'],_0x3e3534[_0xaa07('0x19')])['format']('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0xaa07('0x14')](_0xaa07('0x34')),'type':_0xaa07('0x35'),'output':_0x3e3534[_0xaa07('0x36')],'name':_0x3e3534[_0xaa07('0x17')]};if(!_[_0xaa07('0x31')](_0x3e3534['DefaultReportId'])){logger[_0xaa07('0x27')](_0xaa07('0x37'),_0x3e3534[_0xaa07('0x38')]);return analyticDefaultReportController[_0xaa07('0x39')]({'id':_0x3e3534[_0xaa07('0x38')]},_0x393ddc)['then'](handleResult(_0x3e3534))[_0xaa07('0x2f')](handleError());}if(!_[_0xaa07('0x31')](_0x3e3534[_0xaa07('0x3a')])){logger[_0xaa07('0x27')](_0xaa07('0x3b'),_0x3e3534[_0xaa07('0x3a')]);return analyticCustomReportController[_0xaa07('0x39')]({'id':_0x3e3534[_0xaa07('0x3a')]},_0x393ddc)['then'](handleResult(_0x3e3534))[_0xaa07('0x2f')](handleError());}}catch(_0x2f874f){logger['error'](JSON['stringify'](_0x2f874f));}return logger['info'](_0xaa07('0x3c'));};}function getJobs(_0x35db18){var _0x26a1e3={};if(_0x35db18){_0x26a1e3['id']=_0x35db18;}return db[_0xaa07('0x3d')][_0xaa07('0x3e')]({'where':_0x26a1e3,'include':[{'model':db[_0xaa07('0xb')],'attributes':['id',_0xaa07('0x17'),'email'],'include':[{'model':db[_0xaa07('0x3f')],'as':_0xaa07('0xd')}]}]})[_0xaa07('0x2b')](function(_0x218ae5){var _0x529ab8=_['keys'](manager[_0xaa07('0x40')]);var _0x1b8b4a=_[_0xaa07('0x41')](_0x218ae5,function(_0x13fe86){return _0x13fe86['id'][_0xaa07('0x42')]();});var _0x1eea18=_[_0xaa07('0x43')](_0x218ae5,function(_0x4e755b){return _0x4e755b['id']['toString']();});var _0x538707=_0x35db18?_0x1b8b4a:_[_0xaa07('0x44')](_0x1b8b4a,_0x529ab8);var _0x20f473=_['intersection'](_0x1b8b4a,_0x529ab8);var _0x2e3c39=_[_0xaa07('0x44')](_0x529ab8,_0x1b8b4a);var _0x3b5348;var _0x5cc0f5;for(_0x3b5348=0x0;_0x3b5348<_0x2e3c39['length']&&!_0x35db18;_0x3b5348+=0x1){_0x5cc0f5=_0x2e3c39[_0x3b5348][_0xaa07('0x42')]();if(manager[_0xaa07('0x45')](_0x5cc0f5)){manager['stop'](_0x5cc0f5);manager['deleteJob'](_0x5cc0f5);logger[_0xaa07('0x27')](_0xaa07('0x46'),_0x5cc0f5);}}logger[_0xaa07('0x27')]('toRun',JSON[_0xaa07('0x2d')](_0x538707));for(_0x3b5348=0x0;_0x3b5348<_0x538707['length'];_0x3b5348+=0x1){_0x5cc0f5=_0x538707[_0x3b5348][_0xaa07('0x42')]();logger[_0xaa07('0x27')](_0xaa07('0x47'),_0x5cc0f5);if(_0x35db18){logger['info'](_0xaa07('0x48'),_0x35db18);logger['info'](JSON[_0xaa07('0x2d')](_0x1eea18[_0x5cc0f5]));BPromise[_0xaa07('0x49')]()['then'](handleJob(_0x1eea18[_0x5cc0f5]));logger[_0xaa07('0x27')](_0xaa07('0x4a'),_0x1eea18[_0x5cc0f5][_0xaa07('0x17')],_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')]);}else if(_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')]&&_0x1eea18[_0x5cc0f5]['active']&&moment()[_0xaa07('0x4c')](_0x1eea18[_0x5cc0f5][_0xaa07('0x4d')],_0x1eea18[_0x5cc0f5][_0xaa07('0x4e')])){manager['add'](_0x5cc0f5,_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')],handleJob(_0x1eea18[_0x5cc0f5]));manager[_0xaa07('0x4f')](_0x5cc0f5);logger[_0xaa07('0x27')]('add\x20cron',_0x1eea18[_0x5cc0f5][_0xaa07('0x17')],_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')]);}else if(manager[_0xaa07('0x45')](_0x5cc0f5)){manager['stop'](_0x5cc0f5);manager['deleteJob'](_0x5cc0f5);logger[_0xaa07('0x27')]('stop\x20cron',_0x1eea18[_0x5cc0f5][_0xaa07('0x17')],_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')]);}}for(_0x3b5348=0x0,_0x5cc0f5;_0x3b5348<_0x20f473[_0xaa07('0x50')]&&!_0x35db18;_0x3b5348+=0x1){_0x5cc0f5=_0x20f473[_0x3b5348]['toString']();if(manager[_0xaa07('0x45')](_0x5cc0f5)){if(_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')]&&_0x1eea18[_0x5cc0f5][_0xaa07('0x51')]&&moment()[_0xaa07('0x4c')](_0x1eea18[_0x5cc0f5]['startAt'],_0x1eea18[_0x5cc0f5]['endAt'])){manager['update'](_0x5cc0f5,_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')],handleJob(_0x1eea18[_0x5cc0f5]));logger[_0xaa07('0x27')]('update\x20cron',_0x1eea18[_0x5cc0f5][_0xaa07('0x17')],_0x1eea18[_0x5cc0f5]['cron']);}else{manager[_0xaa07('0x52')](_0x5cc0f5);manager[_0xaa07('0x53')](_0x5cc0f5);logger['info'](_0xaa07('0x54'),_0x1eea18[_0x5cc0f5]['name'],_0x1eea18[_0x5cc0f5][_0xaa07('0x4b')]);}}}})[_0xaa07('0x2f')](function(_0x4534c9){logger[_0xaa07('0x2c')](JSON[_0xaa07('0x2d')](_0x4534c9));});}exports[_0xaa07('0x55')]=function(_0x5ed546){return getJobs(_0x5ed546);};exports[_0xaa07('0x4f')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};