2021-10-05 13:17:18 +02:00
|
|
|
const DynamicRedirectManager = require('@tryghost/express-dynamic-redirects');
|
|
|
|
const OffersModule = require('@tryghost/members-offers');
|
|
|
|
|
|
|
|
const config = require('../../../shared/config');
|
|
|
|
const urlUtils = require('../../../shared/url-utils');
|
|
|
|
const models = require('../../models');
|
|
|
|
|
2022-03-24 10:18:52 +01:00
|
|
|
let redirectManager;
|
2021-10-05 13:17:18 +02:00
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
async init() {
|
2022-03-24 10:18:52 +01:00
|
|
|
redirectManager = new DynamicRedirectManager({
|
|
|
|
permanentMaxAge: config.get('caching:customRedirects:maxAge'),
|
|
|
|
getSubdirectoryURL: (pathname) => {
|
|
|
|
return urlUtils.urlJoin(urlUtils.getSubdir(), pathname);
|
|
|
|
}
|
|
|
|
});
|
2021-10-05 13:17:18 +02:00
|
|
|
const offersModule = OffersModule.create({
|
|
|
|
OfferModel: models.Offer,
|
2021-10-15 11:07:07 +02:00
|
|
|
OfferRedemptionModel: models.OfferRedemption,
|
2022-03-24 10:18:52 +01:00
|
|
|
redirectManager
|
2021-10-05 13:17:18 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
this.api = offersModule.api;
|
2021-11-03 17:17:33 +02:00
|
|
|
|
|
|
|
await offersModule.init();
|
2021-10-05 13:17:18 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
api: null,
|
|
|
|
|
2022-03-24 10:18:52 +01:00
|
|
|
get middleware() {
|
|
|
|
return redirectManager.handleRequest;
|
|
|
|
}
|
2021-10-05 13:17:18 +02:00
|
|
|
};
|