mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-03-11 02:12:21 -05:00
Moved Channels module -> services
refs #9192, refs #5091, refs #9178 - moved channels from controllers to a service - split out the parent router from the remaining individual router logic - moved the tests to match
This commit is contained in:
parent
f0f0735437
commit
90cfdbe7a6
12 changed files with 36 additions and 34 deletions
|
@ -1 +0,0 @@
|
|||
module.exports.router = require('./router');
|
1
core/server/services/channels/index.js
Normal file
1
core/server/services/channels/index.js
Normal file
|
@ -0,0 +1 @@
|
|||
module.exports.router = require('./parent-router');
|
14
core/server/services/channels/parent-router.js
Normal file
14
core/server/services/channels/parent-router.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
var express = require('express'),
|
||||
channelLoader = require('./loader'),
|
||||
channelRouter = require('./router');
|
||||
|
||||
module.exports = function channelsRouter() {
|
||||
var channelsRouter = express.Router({mergeParams: true});
|
||||
|
||||
channelLoader.list().forEach(function (channel) {
|
||||
// Mount this channel router on the parent channels router
|
||||
channelsRouter.use(channel.route, channelRouter(channel));
|
||||
});
|
||||
|
||||
return channelsRouter;
|
||||
};
|
|
@ -4,12 +4,10 @@ var express = require('express'),
|
|||
errors = require('../../errors'),
|
||||
i18n = require('../../i18n'),
|
||||
utils = require('../../utils'),
|
||||
channelLoader = require('./loader'),
|
||||
channelController = require('../channel'),
|
||||
rssController = require('../rss'),
|
||||
channelController = require('../../controllers/channel'),
|
||||
rssController = require('../../controllers/rss'),
|
||||
rssRouter,
|
||||
channelRouter,
|
||||
channelsRouter;
|
||||
channelRouter;
|
||||
|
||||
function handlePageParam(req, res, next, page) {
|
||||
var pageRegex = new RegExp('/' + config.get('routeKeywords').page + '/(.*)?/'),
|
||||
|
@ -90,15 +88,4 @@ channelRouter = function channelRouter(channel) {
|
|||
return channelRouter;
|
||||
};
|
||||
|
||||
channelsRouter = function channelsRouter() {
|
||||
var channelsRouter = express.Router({mergeParams: true});
|
||||
|
||||
_.each(channelLoader.list(), function (channel) {
|
||||
// Mount this channel router on the parent channels router
|
||||
channelsRouter.use(channel.route, channelRouter(channel));
|
||||
});
|
||||
|
||||
return channelsRouter;
|
||||
};
|
||||
|
||||
module.exports = channelsRouter;
|
||||
module.exports = channelRouter;
|
|
@ -1,8 +1,8 @@
|
|||
var express = require('express'),
|
||||
config = require('../config'),
|
||||
controllers = require('../controllers'),
|
||||
channels = require('../controllers/channels'),
|
||||
apps = require('../services/route').appRouter,
|
||||
channelService = require('../services/channels/'),
|
||||
appRouter = require('../services/route').appRouter,
|
||||
utils = require('../utils');
|
||||
|
||||
module.exports = function siteRouter() {
|
||||
|
@ -13,10 +13,10 @@ module.exports = function siteRouter() {
|
|||
router.get(utils.url.urlJoin('/', routeKeywords.preview, ':uuid', ':options?'), controllers.preview);
|
||||
|
||||
// Channels - register sub-router
|
||||
router.use(channels.router());
|
||||
router.use(channelService.router());
|
||||
|
||||
// Apps - register sub-router
|
||||
router.use(apps.router);
|
||||
router.use(appRouter.router);
|
||||
|
||||
// Default - register entry controller as route
|
||||
router.get('*', controllers.entry);
|
||||
|
|
|
@ -3,8 +3,8 @@ var should = require('should'), // jshint ignore:line
|
|||
_ = require('lodash'),
|
||||
|
||||
// Stuff we are testing
|
||||
channelLoader = require('../../../../server/controllers/channels/loader'),
|
||||
channels = require('../../../../server/controllers/channels'),
|
||||
channelLoader = require('../../../../server/services/channels/loader'),
|
||||
channels = require('../../../../server/services/channels'),
|
||||
channelUtils = require('../../../utils/channelUtils'),
|
||||
Channel = channelUtils.Channel,
|
||||
|
|
@ -2,7 +2,7 @@ var should = require('should'), // jshint ignore:line
|
|||
_ = require('lodash'),
|
||||
rewire = require('rewire'),
|
||||
channelUtils = require('../../../utils/channelUtils'),
|
||||
channelLoader = rewire('../../../../server/controllers/channels/loader');
|
||||
channelLoader = rewire('../../../../server/services/channels/loader');
|
||||
|
||||
describe('Channels', function () {
|
||||
describe('Loader', function () {
|
|
@ -4,20 +4,21 @@ var should = require('should'),
|
|||
_ = require('lodash'),
|
||||
|
||||
// Stuff we are testing
|
||||
channels = require('../../../../server/controllers/channels'),
|
||||
channelService = require('../../../../server/services/channels'),
|
||||
api = require('../../../../server/api'),
|
||||
themes = require('../../../../server/themes'),
|
||||
sandbox = sinon.sandbox.create();
|
||||
|
||||
/**
|
||||
* Note: this tests the following all in one go:
|
||||
* - Channel Router controllers/channels/router
|
||||
* - ChannelS Router services/route/channels-router.js
|
||||
* - Channel Router services/channel/router.js
|
||||
* - Channel Controller controllers/channel.js
|
||||
* - Channel Renderer controllers/frontend/render-channel.js
|
||||
* This is because the refactor is in progress!
|
||||
*/
|
||||
describe('Channels', function () {
|
||||
var channelRouter, req, res, hasTemplateStub, themeConfigStub;
|
||||
var channelsRouter, req, res, hasTemplateStub, themeConfigStub;
|
||||
|
||||
// Initialise 'req' with the bare minimum properties
|
||||
function setupRequest() {
|
||||
|
@ -55,7 +56,7 @@ describe('Channels', function () {
|
|||
|
||||
_.extend(req, props);
|
||||
|
||||
channelRouter(req, res, failTest(done));
|
||||
channelsRouter(req, res, failTest(done));
|
||||
}
|
||||
|
||||
// Run a test which should result in a redirect
|
||||
|
@ -81,7 +82,7 @@ describe('Channels', function () {
|
|||
|
||||
_.extend(req, props);
|
||||
|
||||
channelRouter(req, res, failTest(done));
|
||||
channelsRouter(req, res, failTest(done));
|
||||
}
|
||||
|
||||
// Run a test which should result in next() being called
|
||||
|
@ -98,7 +99,7 @@ describe('Channels', function () {
|
|||
|
||||
_.extend(req, props);
|
||||
|
||||
channelRouter(req, res, function (empty) {
|
||||
channelsRouter(req, res, function (empty) {
|
||||
try {
|
||||
assertions.call(this, empty);
|
||||
res.redirect.called.should.be.false();
|
||||
|
@ -141,7 +142,7 @@ describe('Channels', function () {
|
|||
|
||||
before(function () {
|
||||
// We don't overwrite this, so only do it once
|
||||
channelRouter = channels.router();
|
||||
channelsRouter = channelService.router();
|
||||
});
|
||||
|
||||
afterEach(function () {
|
|
@ -1,7 +1,7 @@
|
|||
var _ = require('lodash'),
|
||||
should = require('should'),
|
||||
defaultChannels = require('../../server/controllers/channels/config.channels.json'),
|
||||
Channel = require('../../server/controllers/channels/Channel');
|
||||
defaultChannels = require('../../server/services/channels/config.channels.json'),
|
||||
Channel = require('../../server/services/channels/Channel');
|
||||
|
||||
// This is a function to get a fake or test channel
|
||||
// It's currently based on the default config in Ghost itself
|
||||
|
|
Loading…
Add table
Reference in a new issue