ghost
Version:
The professional publishing platform
38 lines (31 loc) • 1.1 kB
JavaScript
const DynamicRedirectManager = require('../lib/DynamicRedirectManager');
const config = require('../../../shared/config');
const urlUtils = require('../../../shared/url-utils');
const models = require('../../models');
const OfferBookshelfRepository = require('./OfferBookshelfRepository');
const OffersModule = require('./OffersModule');
let redirectManager;
module.exports = {
async init() {
redirectManager = new DynamicRedirectManager({
permanentMaxAge: config.get('caching:customRedirects:maxAge'),
getSubdirectoryURL: (pathname) => {
return urlUtils.urlJoin(urlUtils.getSubdir(), pathname);
}
});
const repository = new OfferBookshelfRepository(
models.Offer,
models.OfferRedemption
);
const offersModule = OffersModule.create({
redirectManager,
repository
});
this.api = offersModule.api;
await offersModule.init();
},
api: null,
get middleware() {
return redirectManager.handleRequest;
}
};