Built motion from commit (unavailable).|2.5.23
[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 _0x8b6f=['error\x20mail','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','keys','map','toString','keyBy','intersection','difference','length','exists','stop','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','cron','startAt','endAt','add','start','add\x20cron','stop\x20cron','update','update\x20cron','path','lodash','cron-job-manager','jayson/promise','bluebird','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','port','secure','authentication','auth','user','pass','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','../../files/reports','savename','format','%s.%s','extname','zip','join','existsSync','attachments','message','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','status','Sent','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','email\x20sent','catch'];(function(_0x2601b4,_0x315e78){var _0x3e3661=function(_0x13b45b){while(--_0x13b45b){_0x2601b4['push'](_0x2601b4['shift']());}};_0x3e3661(++_0x315e78);}(_0x8b6f,0x18b));var _0xf8b6=function(_0x2d2592,_0x44d781){_0x2d2592=_0x2d2592-0x0;var _0x1c3327=_0x8b6f[_0x2d2592];return _0x1c3327;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0xf8b6('0x0'));var _=require(_0xf8b6('0x1'));var moment=require('moment');var CronJobManager=require(_0xf8b6('0x2'));var jayson=require(_0xf8b6('0x3'));var BPromise=require(_0xf8b6('0x4'));var logger=require(_0xf8b6('0x5'))('schedule');var db=require(_0xf8b6('0x6'))['db'];var analyticCustomReportController=require(_0xf8b6('0x7'));var analyticDefaultReportController=require(_0xf8b6('0x8'));var client=jayson['client']['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x34799e,_0x3f58f7){return function(){logger[_0xf8b6('0x9')](_0xf8b6('0xa'),_0x34799e[_0xf8b6('0xb')]);var _0xd43915=!![];var _0xdeaaf8={'tls':{'rejectUnauthorized':![]}};if(_0x34799e[_0xf8b6('0xc')][_0xf8b6('0xd')][_0xf8b6('0xe')]){_0xdeaaf8[_0xf8b6('0xe')]=_0x34799e[_0xf8b6('0xc')][_0xf8b6('0xd')]['service'];}else{_0xdeaaf8['host']=_0x34799e['MailAccount']['Smtp']['host'];_0xdeaaf8[_0xf8b6('0xf')]=_0x34799e[_0xf8b6('0xc')][_0xf8b6('0xd')][_0xf8b6('0xf')];_0xdeaaf8[_0xf8b6('0x10')]=_0x34799e[_0xf8b6('0xc')][_0xf8b6('0xd')][_0xf8b6('0x10')];}if(_0x34799e['MailAccount'][_0xf8b6('0xd')][_0xf8b6('0x11')]){_0xdeaaf8[_0xf8b6('0x12')]={'user':_0x34799e['MailAccount']['Smtp'][_0xf8b6('0x13')],'pass':_0x34799e['MailAccount'][_0xf8b6('0xd')][_0xf8b6('0x14')]};}var _0x1319f7={'account':_0xdeaaf8,'message':{'from':util['format'](_0xf8b6('0x15'),_0x34799e[_0xf8b6('0xc')][_0xf8b6('0x16')],_0x34799e['MailAccount']['email']||_0x34799e[_0xf8b6('0xc')][_0xf8b6('0xd')][_0xf8b6('0x13')]),'to':_0x34799e[_0xf8b6('0xb')],'cc':_0x34799e['cc'],'bcc':_0x34799e[_0xf8b6('0x17')],'subject':util['format'](_0xf8b6('0x18'),_0x3f58f7[_0xf8b6('0x16')],_0x34799e[_0xf8b6('0x19')],_0x34799e[_0xf8b6('0x1a')])}};var _0x3c0b3d=path['join'](__dirname,_0xf8b6('0x1b'));var _0x5e20d1=_0x3f58f7[_0xf8b6('0x1c')];var _0x914989=util[_0xf8b6('0x1d')](_0xf8b6('0x1e'),path['basename'](_0x3f58f7[_0xf8b6('0x1c')],path[_0xf8b6('0x1f')](_0x3f58f7[_0xf8b6('0x1c')])),_0xf8b6('0x20'));var _0x177d45=path[_0xf8b6('0x21')](_0x3c0b3d,_0x5e20d1);var _0xf65e82=path['join'](_0x3c0b3d,_0x914989);if(fs[_0xf8b6('0x22')](_0x177d45)){_0x3f58f7['status']='Sent';_0x1319f7['message'][_0xf8b6('0x23')]=[{'filename':_0x5e20d1,'path':_0x177d45}];_0x1319f7[_0xf8b6('0x24')][_0xf8b6('0x25')]=util[_0xf8b6('0x1d')](_0xf8b6('0x26'),JSON[_0xf8b6('0x27')](_0x3f58f7,null,0x2));}else if(fs[_0xf8b6('0x22')](_0xf65e82)){_0x3f58f7[_0xf8b6('0x28')]=_0xf8b6('0x29');_0x1319f7[_0xf8b6('0x24')][_0xf8b6('0x23')]=[{'filename':_0x914989,'path':_0xf65e82}];}else{_0x1319f7[_0xf8b6('0x24')]['text']=_0xf8b6('0x2a');if(!_0x34799e['sendIfEmpty']){_0xd43915=![];logger[_0xf8b6('0x9')](_0xf8b6('0x2b'));}}if(_0xd43915){return client[_0xf8b6('0x2c')](_0xf8b6('0x2d'),_0x1319f7)[_0xf8b6('0x2e')](function(_0x3bc2b4){if(_0x3bc2b4[_0xf8b6('0x2f')]){return logger[_0xf8b6('0x2f')]('error\x20mail',JSON[_0xf8b6('0x27')](_0x3bc2b4));}return logger[_0xf8b6('0x9')](_0xf8b6('0x30'));})[_0xf8b6('0x31')](function(_0x279a2a){return logger[_0xf8b6('0x2f')](_0xf8b6('0x32'),JSON['stringify'](_0x279a2a));});}};}function handleError(){return function(_0x463c80){return logger[_0xf8b6('0x2f')](JSON['stringify'](_0x463c80));};}function handleResult(_0x344028){return function(_0x427f0f){logger[_0xf8b6('0x9')]('data',JSON[_0xf8b6('0x27')](_0x427f0f));if(_0x344028[_0xf8b6('0xc')]&&_0x344028[_0xf8b6('0xc')]['Smtp']&&!_[_0xf8b6('0x33')](_0x344028[_0xf8b6('0xb')])){setTimeout(handleSendEmail(_0x344028,_0x427f0f),0x3c*0x3e8);}};}function handleJob(_0xf40609){return function(){try{if(_[_0xf8b6('0x33')](_0xf40609[_0xf8b6('0x19')])){return logger[_0xf8b6('0x9')](_0xf8b6('0x34'));}if(_['isNil'](_0xf40609[_0xf8b6('0x1a')])){return logger['info'](_0xf8b6('0x35'));}var _0x2e7db1={'startDate':moment()[_0xf8b6('0x36')](_0xf40609['subtractNumber'],_0xf40609[_0xf8b6('0x1a')])[_0xf8b6('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()['format'](_0xf8b6('0x37')),'type':_0xf8b6('0x38'),'output':_0xf40609[_0xf8b6('0x39')],'name':_0xf40609[_0xf8b6('0x16')]};if(!_[_0xf8b6('0x33')](_0xf40609['DefaultReportId'])){logger[_0xf8b6('0x9')]('exec\x20defaul\x20report\x20id:%s',_0xf40609[_0xf8b6('0x3a')]);return analyticDefaultReportController[_0xf8b6('0x3b')]({'id':_0xf40609[_0xf8b6('0x3a')]},_0x2e7db1)['then'](handleResult(_0xf40609))['catch'](handleError());}if(!_['isNil'](_0xf40609[_0xf8b6('0x3c')])){logger[_0xf8b6('0x9')](_0xf8b6('0x3d'),_0xf40609[_0xf8b6('0x3c')]);return analyticCustomReportController[_0xf8b6('0x3b')]({'id':_0xf40609[_0xf8b6('0x3c')]},_0x2e7db1)[_0xf8b6('0x2e')](handleResult(_0xf40609))[_0xf8b6('0x31')](handleError());}}catch(_0x1fb594){logger[_0xf8b6('0x2f')](JSON['stringify'](_0x1fb594));}return logger['info'](_0xf8b6('0x3e'));};}function getJobs(_0xc5ec0c){var _0x44afaf={};if(_0xc5ec0c){_0x44afaf['id']=_0xc5ec0c;}return db[_0xf8b6('0x3f')][_0xf8b6('0x40')]({'where':_0x44afaf,'include':[{'model':db[_0xf8b6('0xc')],'attributes':['id',_0xf8b6('0x16'),_0xf8b6('0xb')],'include':[{'model':db['MailServerOut'],'as':_0xf8b6('0xd')}]}]})[_0xf8b6('0x2e')](function(_0x350657){var _0x1fe3fc=_[_0xf8b6('0x41')](manager['jobs']);var _0x511cf3=_[_0xf8b6('0x42')](_0x350657,function(_0x2b4353){return _0x2b4353['id'][_0xf8b6('0x43')]();});var _0x54f6b3=_[_0xf8b6('0x44')](_0x350657,function(_0x5becd3){return _0x5becd3['id']['toString']();});var _0x1cb9e5=_0xc5ec0c?_0x511cf3:_['difference'](_0x511cf3,_0x1fe3fc);var _0x3b789f=_[_0xf8b6('0x45')](_0x511cf3,_0x1fe3fc);var _0x55341b=_[_0xf8b6('0x46')](_0x1fe3fc,_0x511cf3);var _0x25508c;var _0x3fd7b5;for(_0x25508c=0x0;_0x25508c<_0x55341b[_0xf8b6('0x47')]&&!_0xc5ec0c;_0x25508c+=0x1){_0x3fd7b5=_0x55341b[_0x25508c][_0xf8b6('0x43')]();if(manager[_0xf8b6('0x48')](_0x3fd7b5)){manager[_0xf8b6('0x49')](_0x3fd7b5);manager[_0xf8b6('0x4a')](_0x3fd7b5);logger['info'](_0xf8b6('0x4b'),_0x3fd7b5);}}logger[_0xf8b6('0x9')](_0xf8b6('0x4c'),JSON[_0xf8b6('0x27')](_0x1cb9e5));for(_0x25508c=0x0;_0x25508c<_0x1cb9e5[_0xf8b6('0x47')];_0x25508c+=0x1){_0x3fd7b5=_0x1cb9e5[_0x25508c][_0xf8b6('0x43')]();logger[_0xf8b6('0x9')](_0xf8b6('0x4d'),_0x3fd7b5);if(_0xc5ec0c){logger[_0xf8b6('0x9')](_0xf8b6('0x4e'),_0xc5ec0c);logger[_0xf8b6('0x9')](JSON[_0xf8b6('0x27')](_0x54f6b3[_0x3fd7b5]));BPromise[_0xf8b6('0x4f')]()['then'](handleJob(_0x54f6b3[_0x3fd7b5]));logger[_0xf8b6('0x9')]('run\x20job',_0x54f6b3[_0x3fd7b5]['name'],_0x54f6b3[_0x3fd7b5][_0xf8b6('0x50')]);}else if(_0x54f6b3[_0x3fd7b5][_0xf8b6('0x50')]&&_0x54f6b3[_0x3fd7b5]['active']&&moment()['isBetween'](_0x54f6b3[_0x3fd7b5][_0xf8b6('0x51')],_0x54f6b3[_0x3fd7b5][_0xf8b6('0x52')])){manager[_0xf8b6('0x53')](_0x3fd7b5,_0x54f6b3[_0x3fd7b5]['cron'],handleJob(_0x54f6b3[_0x3fd7b5]));manager[_0xf8b6('0x54')](_0x3fd7b5);logger[_0xf8b6('0x9')](_0xf8b6('0x55'),_0x54f6b3[_0x3fd7b5][_0xf8b6('0x16')],_0x54f6b3[_0x3fd7b5]['cron']);}else if(manager[_0xf8b6('0x48')](_0x3fd7b5)){manager[_0xf8b6('0x49')](_0x3fd7b5);manager[_0xf8b6('0x4a')](_0x3fd7b5);logger[_0xf8b6('0x9')](_0xf8b6('0x56'),_0x54f6b3[_0x3fd7b5][_0xf8b6('0x16')],_0x54f6b3[_0x3fd7b5][_0xf8b6('0x50')]);}}for(_0x25508c=0x0,_0x3fd7b5;_0x25508c<_0x3b789f[_0xf8b6('0x47')]&&!_0xc5ec0c;_0x25508c+=0x1){_0x3fd7b5=_0x3b789f[_0x25508c][_0xf8b6('0x43')]();if(manager[_0xf8b6('0x48')](_0x3fd7b5)){if(_0x54f6b3[_0x3fd7b5][_0xf8b6('0x50')]&&_0x54f6b3[_0x3fd7b5]['active']&&moment()['isBetween'](_0x54f6b3[_0x3fd7b5][_0xf8b6('0x51')],_0x54f6b3[_0x3fd7b5][_0xf8b6('0x52')])){manager[_0xf8b6('0x57')](_0x3fd7b5,_0x54f6b3[_0x3fd7b5][_0xf8b6('0x50')],handleJob(_0x54f6b3[_0x3fd7b5]));logger[_0xf8b6('0x9')](_0xf8b6('0x58'),_0x54f6b3[_0x3fd7b5][_0xf8b6('0x16')],_0x54f6b3[_0x3fd7b5][_0xf8b6('0x50')]);}else{manager[_0xf8b6('0x49')](_0x3fd7b5);manager[_0xf8b6('0x4a')](_0x3fd7b5);logger[_0xf8b6('0x9')]('stop\x20cron',_0x54f6b3[_0x3fd7b5]['name'],_0x54f6b3[_0x3fd7b5]['cron']);}}}})[_0xf8b6('0x31')](function(_0x3296e2){logger[_0xf8b6('0x2f')](JSON[_0xf8b6('0x27')](_0x3296e2));});}exports['run']=function(_0x51de43){return getJobs(_0x51de43);};exports[_0xf8b6('0x54')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};