mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-22 18:31:57 +03:00
937d9e58d1
refs https://github.com/TryGhost/Team/issues/990 - Relying on uuid instead of slug makes the posts less discoverable and partially soves discoverability through overriden robots.txt files
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
const ParentRouter = require('./ParentRouter');
|
|
const urlUtils = require('../../../shared/url-utils');
|
|
const controllers = require('./controllers');
|
|
|
|
/**
|
|
* @description Preview Router.
|
|
*/
|
|
class EmailRouter extends ParentRouter {
|
|
constructor(RESOURCE_CONFIG) {
|
|
super('PreviewRouter');
|
|
|
|
this.RESOURCE_CONFIG = RESOURCE_CONFIG.QUERY.email;
|
|
|
|
// @NOTE: hardcoded, not configureable
|
|
this.route = {value: '/email/'};
|
|
|
|
this._registerRoutes();
|
|
}
|
|
|
|
/**
|
|
* @description Register all routes of this router.
|
|
* @private
|
|
*/
|
|
_registerRoutes() {
|
|
// REGISTER: prepare context
|
|
this.router().use(this._prepareContext.bind(this));
|
|
|
|
// REGISTER: actual email route
|
|
this.mountRoute(urlUtils.urlJoin(this.route.value, ':uuid', ':options?'), controllers.email);
|
|
}
|
|
|
|
/**
|
|
* @description Prepare context for further middlewares/controllers.
|
|
* @param {Object} req
|
|
* @param {Object} res
|
|
* @param {Function} next
|
|
* @private
|
|
*/
|
|
_prepareContext(req, res, next) {
|
|
res.routerOptions = {
|
|
type: 'entry',
|
|
query: this.RESOURCE_CONFIG,
|
|
context: ['emailPost']
|
|
};
|
|
|
|
next();
|
|
}
|
|
}
|
|
|
|
module.exports = EmailRouter;
|