Halfway through in refactoring the report generation to a separate process running asynchronously of the Express server.
This commit is contained in:
parent
2056645023
commit
e7d12f1dbc
10 changed files with 319 additions and 206 deletions
118
app.js
118
app.js
|
@ -1,49 +1,50 @@
|
|||
'use strict';
|
||||
|
||||
let config = require('config');
|
||||
let log = require('npmlog');
|
||||
const config = require('config');
|
||||
const log = require('npmlog');
|
||||
|
||||
let _ = require('./lib/translate')._;
|
||||
let util = require('util');
|
||||
const _ = require('./lib/translate')._;
|
||||
const util = require('util');
|
||||
|
||||
let express = require('express');
|
||||
let bodyParser = require('body-parser');
|
||||
let path = require('path');
|
||||
let favicon = require('serve-favicon');
|
||||
let logger = require('morgan');
|
||||
let cookieParser = require('cookie-parser');
|
||||
let session = require('express-session');
|
||||
let RedisStore = require('connect-redis')(session);
|
||||
let flash = require('connect-flash');
|
||||
let hbs = require('hbs');
|
||||
let compression = require('compression');
|
||||
let passport = require('./lib/passport');
|
||||
let tools = require('./lib/tools');
|
||||
const express = require('express');
|
||||
const bodyParser = require('body-parser');
|
||||
const path = require('path');
|
||||
const favicon = require('serve-favicon');
|
||||
const logger = require('morgan');
|
||||
const cookieParser = require('cookie-parser');
|
||||
const session = require('express-session');
|
||||
const RedisStore = require('connect-redis')(session);
|
||||
const flash = require('connect-flash');
|
||||
const hbs = require('hbs');
|
||||
const handlebarsHelpers = require('./lib/handlebars-helpers');
|
||||
const compression = require('compression');
|
||||
const passport = require('./lib/passport');
|
||||
const tools = require('./lib/tools');
|
||||
|
||||
let routes = require('./routes/index');
|
||||
let users = require('./routes/users');
|
||||
let lists = require('./routes/lists');
|
||||
let settings = require('./routes/settings');
|
||||
let settingsModel = require('./lib/models/settings');
|
||||
let templates = require('./routes/templates');
|
||||
let campaigns = require('./routes/campaigns');
|
||||
let links = require('./routes/links');
|
||||
let fields = require('./routes/fields');
|
||||
let forms = require('./routes/forms');
|
||||
let segments = require('./routes/segments');
|
||||
let triggers = require('./routes/triggers');
|
||||
let webhooks = require('./routes/webhooks');
|
||||
let subscription = require('./routes/subscription');
|
||||
let archive = require('./routes/archive');
|
||||
let api = require('./routes/api');
|
||||
let blacklist = require('./routes/blacklist');
|
||||
let editorapi = require('./routes/editorapi');
|
||||
let grapejs = require('./routes/grapejs');
|
||||
let mosaico = require('./routes/mosaico');
|
||||
let reports = require('./routes/reports');
|
||||
let reportsTemplates = require('./routes/report-templates');
|
||||
const routes = require('./routes/index');
|
||||
const users = require('./routes/users');
|
||||
const lists = require('./routes/lists');
|
||||
const settings = require('./routes/settings');
|
||||
const settingsModel = require('./lib/models/settings');
|
||||
const templates = require('./routes/templates');
|
||||
const campaigns = require('./routes/campaigns');
|
||||
const links = require('./routes/links');
|
||||
const fields = require('./routes/fields');
|
||||
const forms = require('./routes/forms');
|
||||
const segments = require('./routes/segments');
|
||||
const triggers = require('./routes/triggers');
|
||||
const webhooks = require('./routes/webhooks');
|
||||
const subscription = require('./routes/subscription');
|
||||
const archive = require('./routes/archive');
|
||||
const api = require('./routes/api');
|
||||
const blacklist = require('./routes/blacklist');
|
||||
const editorapi = require('./routes/editorapi');
|
||||
const grapejs = require('./routes/grapejs');
|
||||
const mosaico = require('./routes/mosaico');
|
||||
const reports = require('./routes/reports');
|
||||
const reportsTemplates = require('./routes/report-templates');
|
||||
|
||||
let app = express();
|
||||
const app = express();
|
||||
|
||||
// view engine setup
|
||||
app.set('views', path.join(__dirname, 'views'));
|
||||
|
@ -108,43 +109,8 @@ hbs.registerHelper('flash_messages', function () { // eslint-disable-line prefer
|
|||
);
|
||||
});
|
||||
|
||||
// {{#translate}}abc{{/translate}}
|
||||
hbs.registerHelper('translate', function (context, options) { // eslint-disable-line prefer-arrow-callback
|
||||
if (typeof options === 'undefined' && context) {
|
||||
options = context;
|
||||
context = false;
|
||||
}
|
||||
handlebarsHelpers.registerHelpers(hbs.handlebars);
|
||||
|
||||
let result = _(options.fn(this)); // eslint-disable-line no-invalid-this
|
||||
|
||||
if (Array.isArray(context)) {
|
||||
result = util.format(result, ...context);
|
||||
}
|
||||
return new hbs.handlebars.SafeString(result);
|
||||
});
|
||||
|
||||
/* Credits to http://chrismontrois.net/2016/01/30/handlebars-switch/
|
||||
|
||||
{{#switch letter}}
|
||||
{{#case "a"}}
|
||||
A is for alpaca
|
||||
{{/case}}
|
||||
{{#case "b"}}
|
||||
B is for bluebird
|
||||
{{/case}}
|
||||
{{/switch}}
|
||||
*/
|
||||
hbs.registerHelper("switch", function(value, options) {
|
||||
this._switch_value_ = value;
|
||||
var html = options.fn(this); // Process the body of the switch block
|
||||
delete this._switch_value_;
|
||||
return html;
|
||||
});
|
||||
hbs.registerHelper("case", function(value, options) {
|
||||
if (value == this._switch_value_) {
|
||||
return options.fn(this);
|
||||
}
|
||||
});
|
||||
|
||||
app.use(compression());
|
||||
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue