one final push, cleanup + organize + lint; made feeds/meta/plugins routes follow same pattern as other route files

v1.18.x
psychobunny 11 years ago
parent 1dbc47b890
commit c0cd6148f4

@ -16,9 +16,7 @@ var templates = require('./../../public/src/templates'),
var middleware = {};
/*
* Helper functions
*/
function routeThemeScreenshots(app, themes) {
var screenshotPath;
@ -170,6 +168,9 @@ function catch404(req, res, next) {
}
}
module.exports = function(app, data) {
middleware = require('./middleware')(app);

@ -22,7 +22,6 @@ var nconf = require('nconf'),
utils = require('./../../public/src/utils'),
templates = require('./../../public/src/templates');
var Admin = {};
function uploadImage(filename, req, res) {
function done(err, image) {
@ -45,69 +44,7 @@ function uploadImage(filename, req, res) {
}
}
module.exports = function(app, middleware, controllers) {
app.all('/api/admin/*', middleware.admin.isAdmin, middleware.prepareAPI);
app.all('/admin/*', middleware.admin.isAdmin);
app.get('/admin', middleware.admin.isAdmin);
app.get('/admin/', middleware.admin.buildHeader, controllers.admin.home);
app.get('/api/admin/index', controllers.admin.home);
app.get('/admin/users/search', middleware.admin.buildHeader, controllers.admin.users.search);
app.get('/api/admin/users/search', controllers.admin.users.search);
app.get('/admin/users/latest', middleware.admin.buildHeader, controllers.admin.users.latest);
app.get('/api/admin/users/latest', controllers.admin.users.latest);
app.get('/admin/users/sort-posts', middleware.admin.buildHeader, controllers.admin.users.sortByPosts);
app.get('/api/admin/users/sort-posts', controllers.admin.users.sortByPosts);
app.get('/admin/users/sort-reputation', middleware.admin.buildHeader, controllers.admin.users.sortByReputation);
app.get('/api/admin/users/sort-reputation', controllers.admin.users.sortByReputation);
app.get('/admin/users', middleware.admin.buildHeader, controllers.admin.users.sortByJoinDate);
app.get('/api/admin/users', controllers.admin.users.sortByJoinDate);
app.get('/admin/categories/active', middleware.admin.buildHeader, controllers.admin.categories.active);
app.get('/api/admin/categories/active', controllers.admin.categories.active);
app.get('/admin/categories/disabled', middleware.admin.buildHeader, controllers.admin.categories.disabled);
app.get('/api/admin/categories/disabled', controllers.admin.categories.disabled);
app.get('/admin/topics', middleware.admin.buildHeader, controllers.admin.topics.get);
app.get('/api/admin/topics', controllers.admin.topics.get);
app.get('/admin/database', middleware.admin.buildHeader, controllers.admin.database.get);
app.get('/api/admin/database', controllers.admin.database.get);
app.get('/admin/events', middleware.admin.buildHeader, controllers.admin.events.get);
app.get('/api/admin/events', controllers.admin.events.get);
app.get('/admin/plugins', middleware.admin.buildHeader, controllers.admin.plugins.get);
app.get('/api/admin/plugins', controllers.admin.plugins.get);
app.get('/admin/languages', middleware.admin.buildHeader, controllers.admin.languages.get);
app.get('/api/admin/languages', controllers.admin.languages.get);
app.get('/admin/settings', middleware.admin.buildHeader, controllers.admin.settings.get);
app.get('/api/admin/settings', controllers.admin.settings.get);
app.get('/admin/logger', middleware.admin.buildHeader, controllers.admin.logger.get);
app.get('/api/admin/logger', controllers.admin.logger.get);
app.get('/admin/themes', middleware.admin.buildHeader, controllers.admin.themes.get);
app.get('/api/admin/themes', controllers.admin.themes.get);
app.get('/admin/groups', middleware.admin.buildHeader, controllers.admin.groups.get);
app.get('/api/admin/groups', controllers.admin.groups.get);
app.namespace('/admin', function () {
app.post('/category/uploadpicture', function(req, res) {
function uploadCategoryPicture(req, res, next) {
if (!req.user) {
return res.redirect('/403');
}
@ -134,9 +71,9 @@ module.exports = function(app, middleware, controllers) {
var filename = 'category-' + params.cid + path.extname(req.files.userPhoto.name);
uploadImage(filename, req, res);
});
}
app.post('/uploadfavicon', function(req, res) {
function uploadFavicon(req, res, next) {
if (!req.user) {
return res.redirect('/403');
}
@ -161,10 +98,9 @@ module.exports = function(app, middleware, controllers) {
var rs = {path: image.url};
res.send(req.xhr ? rs : JSON.stringify(rs));
});
});
app.post('/uploadlogo', function(req, res) {
}
function uploadLogo(req, res, next) {
if (!req.user) {
return res.redirect('/403');
}
@ -181,52 +117,80 @@ module.exports = function(app, middleware, controllers) {
var filename = 'site-logo' + path.extname(req.files.userPhoto.name);
uploadImage(filename, req, res);
});
}
app.get('/users/csv', function(req, res) {
function getUsersCSV(req, res, next) {
user.getUsersCSV(function(err, data) {
res.attachment('users.csv');
res.setHeader('Content-Type', 'text/csv');
res.end(data);
});
});
});
}
var custom_routes = {
'routes': [],
'api': []
};
module.exports = function(app, middleware, controllers) {
app.all('/api/admin/*', middleware.admin.isAdmin, middleware.prepareAPI);
app.all('/admin/*', middleware.admin.isAdmin);
app.get('/admin', middleware.admin.isAdmin);
plugins.ready(function() {
plugins.fireHook('filter:admin.create_routes', custom_routes, function(err, custom_routes) {
var route, routes = custom_routes.routes;
for (route in routes) {
if (routes.hasOwnProperty(route)) {
(function(route) {
app[routes[route].method || 'get']('/admin' + routes[route].route, function(req, res) {
routes[route].options(req, res, function(options) {
Admin.buildHeader(req, res, function (err, header) {
res.send(header + options.content + templates['admin/footer']);
});
});
});
}(route));
}
}
var apiRoutes = custom_routes.api;
for (route in apiRoutes) {
if (apiRoutes.hasOwnProperty(route)) {
(function(route) {
app[apiRoutes[route].method || 'get']('/api/admin' + apiRoutes[route].route, function(req, res) {
apiRoutes[route].callback(req, res, function(data) {
res.json(data);
});
});
}(route));
}
}
});
app.get('/admin/', middleware.admin.buildHeader, controllers.admin.home);
app.get('/api/admin/index', controllers.admin.home);
app.get('/admin/users/search', middleware.admin.buildHeader, controllers.admin.users.search);
app.get('/api/admin/users/search', controllers.admin.users.search);
app.get('/admin/users/latest', middleware.admin.buildHeader, controllers.admin.users.latest);
app.get('/api/admin/users/latest', controllers.admin.users.latest);
app.get('/admin/users/sort-posts', middleware.admin.buildHeader, controllers.admin.users.sortByPosts);
app.get('/api/admin/users/sort-posts', controllers.admin.users.sortByPosts);
app.get('/admin/users/sort-reputation', middleware.admin.buildHeader, controllers.admin.users.sortByReputation);
app.get('/api/admin/users/sort-reputation', controllers.admin.users.sortByReputation);
app.get('/admin/users', middleware.admin.buildHeader, controllers.admin.users.sortByJoinDate);
app.get('/api/admin/users', controllers.admin.users.sortByJoinDate);
app.get('/admin/categories/active', middleware.admin.buildHeader, controllers.admin.categories.active);
app.get('/api/admin/categories/active', controllers.admin.categories.active);
app.get('/admin/categories/disabled', middleware.admin.buildHeader, controllers.admin.categories.disabled);
app.get('/api/admin/categories/disabled', controllers.admin.categories.disabled);
app.get('/admin/topics', middleware.admin.buildHeader, controllers.admin.topics.get);
app.get('/api/admin/topics', controllers.admin.topics.get);
app.get('/admin/database', middleware.admin.buildHeader, controllers.admin.database.get);
app.get('/api/admin/database', controllers.admin.database.get);
app.get('/admin/events', middleware.admin.buildHeader, controllers.admin.events.get);
app.get('/api/admin/events', controllers.admin.events.get);
app.get('/admin/plugins', middleware.admin.buildHeader, controllers.admin.plugins.get);
app.get('/api/admin/plugins', controllers.admin.plugins.get);
app.get('/admin/languages', middleware.admin.buildHeader, controllers.admin.languages.get);
app.get('/api/admin/languages', controllers.admin.languages.get);
app.get('/admin/settings', middleware.admin.buildHeader, controllers.admin.settings.get);
app.get('/api/admin/settings', controllers.admin.settings.get);
app.get('/admin/logger', middleware.admin.buildHeader, controllers.admin.logger.get);
app.get('/api/admin/logger', controllers.admin.logger.get);
app.get('/admin/themes', middleware.admin.buildHeader, controllers.admin.themes.get);
app.get('/api/admin/themes', controllers.admin.themes.get);
app.get('/admin/groups', middleware.admin.buildHeader, controllers.admin.groups.get);
app.get('/api/admin/groups', controllers.admin.groups.get);
app.namespace('/admin', function () {
app.get('/users/csv', getUsersCSV);
app.post('/category/uploadpicture', uploadCategoryPicture);
app.post('/uploadfavicon', uploadFavicon);
app.post('/uploadlogo', uploadLogo);
});
};

@ -13,31 +13,12 @@ var path = require('path'),
meta = require('./../meta'),
plugins = require('./../plugins'),
utils = require('./../../public/src/utils'),
pkg = require('./../../package.json');
pkg = require('./../../package.json'),
customTemplates = [];
module.exports = function(app, middleware, controllers) {
app.namespace('/api', function () {
app.all('*', middleware.updateLastOnlineTime, middleware.prepareAPI);
app.get('/user/uid/:uid', middleware.checkGlobalPrivacySettings, controllers.accounts.getUserByUID);
app.get('/get_templates_listing', function (req, res) {
utils.walk(nconf.get('views_dir'), function (err, data) {
data = data.concat(app.get_custom_templates())
.filter(function(value, index, self) {
return self.indexOf(value) === index;
}).map(function(el) {
return el.replace(nconf.get('views_dir') + '/', '');
});
res.json(data);
});
});
app.get('/config', controllers.api.getConfig);
app.get('/search/:term', function (req, res, next) {
function searchTerm(req, res, next) {
if (!plugins.hasListeners('filter:search.query')) {
return res.redirect('/404');
}
@ -93,9 +74,9 @@ module.exports = function(app, middleware, controllers) {
} else {
res.send(403);
}
});
}
function upload(req, res, filesIterator, next) {
function upload(req, res, filesIterator, next) {
if(!req.user) {
return res.json(403, {message:'not allowed'});
}
@ -105,7 +86,6 @@ module.exports = function(app, middleware, controllers) {
return res.json(500, {message: 'invalid files'});
}
// multiple files
if(Array.isArray(files[0])) {
files = files[0];
}
@ -123,18 +103,13 @@ module.exports = function(app, middleware, controllers) {
return res.send(500, err.message);
}
// if this was not a XMLHttpRequest (hence the req.xhr check http://expressjs.com/api.html#req.xhr)
// then most likely it's submit via the iFrame workaround, via the jquery.form plugin's ajaxSubmit()
// we need to send it as text/html so IE8 won't trigger a file download for the json response
// IE8 - send it as text/html so browser won't trigger a file download for the json response
// malsup.com/jquery/form/#file-upload
// Also, req.send is safe for both types, if the response was an object, res.send will automatically submit as application/json
// expressjs.com/api.html#res.send
res.send(200, req.xhr ? images : JSON.stringify(images));
});
}
}
app.post('/post/upload', function(req, res, next) {
function uploadPost(req, res, next) {
upload(req, res, function(file, next) {
if(file.type.match(/image./)) {
posts.uploadPostImage(file, next);
@ -142,9 +117,9 @@ module.exports = function(app, middleware, controllers) {
posts.uploadPostFile(file, next);
}
}, next);
});
}
app.post('/topic/thumb/upload', function(req, res, next) {
function uploadThumb(req, res, next) {
upload(req, res, function(file, next) {
if(file.type.match(/image./)) {
topics.uploadTopicThumb(file, next);
@ -152,13 +127,42 @@ module.exports = function(app, middleware, controllers) {
res.json(500, {message: 'Invalid File'});
}
}, next);
});
}
app.get('/categories/:cid/moderators', function(req, res) {
function getModerators(req, res, next) {
categories.getModerators(req.params.cid, function(err, moderators) {
res.json({moderators: moderators});
});
}
function getTemplatesListing(req, res, next) {
utils.walk(nconf.get('views_dir'), function (err, data) {
data = data.concat(customTemplates)
.filter(function(value, index, self) {
return self.indexOf(value) === index;
}).map(function(el) {
return el.replace(nconf.get('views_dir') + '/', '');
});
res.json(data);
});
}
module.exports = function(app, middleware, controllers) {
app.namespace('/api', function () {
app.all('*', middleware.updateLastOnlineTime, middleware.prepareAPI);
customTemplates = app.get_custom_templates();
app.get('/config', controllers.api.getConfig);
app.get('/user/uid/:uid', middleware.checkGlobalPrivacySettings, controllers.accounts.getUserByUID);
app.get('/get_templates_listing', getTemplatesListing);
app.get('/search/:term', searchTerm);
app.get('/categories/:cid/moderators', getModerators);
app.post('/post/upload', uploadPost);
app.post('/topic/thumb/upload', uploadThumb);
});
// this should be in the API namespace

@ -1,17 +1,16 @@
"use strict";
var user = require('./../user'),
categories = require('./../categories'),
topics = require('./../topics'),
posts = require('./../posts');
var DebugRoute = function(app) {
module.exports = function(app, middleware, controllers) {
app.namespace('/debug', function() {
app.get('/uid/:uid', function (req, res) {
if (!req.params.uid)
if (!req.params.uid) {
return res.redirect('/404');
}
user.getUserData(req.params.uid, function (err, data) {
if (data) {
@ -53,12 +52,5 @@ var DebugRoute = function(app) {
}
});
});
app.get('/test', function(req, res) {
res.send(200);
});
});
};
module.exports = DebugRoute;

@ -1,5 +1,6 @@
(function (Feeds) {
var posts = require('../posts'),
"use strict";
var posts = require('../posts'),
topics = require('../topics'),
categories = require('../categories'),
@ -9,15 +10,7 @@
ThreadTools = require('../threadTools'),
CategoryTools = require('../categoryTools');
Feeds.createRoutes = function(app){
app.get('/topic/:topic_id.rss', hasTopicPrivileges, generateForTopic);
app.get('/category/:category_id.rss', hasCategoryPrivileges, generateForCategory);
app.get('/recent.rss', generateForRecent);
app.get('/popular.rss', generateForPopular);
};
function hasTopicPrivileges(req, res, next) {
function hasTopicPrivileges(req, res, next) {
var tid = req.params.topic_id;
var uid = req.user ? req.user.uid || 0 : 0;
@ -32,9 +25,9 @@
return next();
});
}
}
function hasCategoryPrivileges(req, res, next) {
function hasCategoryPrivileges(req, res, next) {
var cid = req.params.category_id;
var uid = req.user ? req.user.uid || 0 : 0;
@ -49,10 +42,10 @@
return next();
});
}
}
function generateForTopic(req, res, next) {
function generateForTopic(req, res, next) {
var tid = req.params.topic_id;
topics.getTopicWithPosts(tid, 0, 0, 25, function (err, topicData) {
@ -98,9 +91,9 @@
res.type('xml').set('Content-Length', Buffer.byteLength(xml)).send(xml);
});
};
}
function generateForCategory(req, res, next) {
function generateForCategory(req, res, next) {
var cid = req.params.category_id;
categories.getCategoryById(cid, 0, 25, 0, function (err, categoryData) {
@ -117,7 +110,9 @@
});
// Add pubDate if category has topics
if (categoryData.topics.length > 0) feed.pubDate = new Date(parseInt(categoryData.topics[0].lastposttime, 10)).toUTCString();
if (categoryData.topics.length > 0) {
feed.pubDate = new Date(parseInt(categoryData.topics[0].lastposttime, 10)).toUTCString();
}
categoryData.topics.forEach(function(topicData) {
feed.item({
@ -131,9 +126,9 @@
var xml = feed.xml();
res.type('xml').set('Content-Length', Buffer.byteLength(xml)).send(xml);
});
};
}
function generateForRecent(req, res, next) {
function generateForRecent(req, res, next) {
topics.getLatestTopics(0, 0, 19, 'month', function (err, recentData) {
if(err){
return next(err);
@ -164,9 +159,9 @@
var xml = feed.xml();
res.type('xml').set('Content-Length', Buffer.byteLength(xml)).send(xml);
});
};
}
function generateForPopular(req, res, next) {
function generateForPopular(req, res, next) {
topics.getTopicsFromSet(0, 'topics:posts', 0, 19, function (err, popularData) {
if(err){
return next(err);
@ -197,5 +192,11 @@
var xml = feed.xml();
res.type('xml').set('Content-Length', Buffer.byteLength(xml)).send(xml);
});
};
}(exports));
}
module.exports = function(app, middleware, controllers){
app.get('/topic/:topic_id.rss', hasTopicPrivileges, generateForTopic);
app.get('/category/:category_id.rss', hasCategoryPrivileges, generateForCategory);
app.get('/recent.rss', generateForRecent);
app.get('/popular.rss', generateForPopular);
};

@ -5,20 +5,19 @@ var nconf = require('nconf'),
meta = require('./../meta'),
plugins = require('./../plugins'),
metaRoute = require('./meta'),
apiRoute = require('./api'),
admin = require('./admin'),
feedsRoute = require('./feeds');
metaRoutes = require('./meta'),
apiRoutes = require('./api'),
adminRoutes = require('./admin'),
feedRoutes = require('./feeds'),
pluginRoutes = require('./plugins');
module.exports = function(app, middleware) {
app.namespace(nconf.get('relative_path'), function() {
//temp
metaRoute.createRoutes(app);
feedsRoute.createRoutes(app);
admin(app, middleware, controllers);
apiRoute(app, middleware, controllers);
adminRoutes(app, middleware, controllers);
metaRoutes(app, middleware, controllers);
apiRoutes(app, middleware, controllers);
feedRoutes(app, middleware, controllers);
/**
* Every view has an associated API route.
@ -122,83 +121,10 @@ module.exports = function(app, middleware) {
app.get('/users/search', middleware.buildHeader, middleware.checkGlobalPrivacySettings, controllers.users.getUsersForSearch);
app.get('/api/users/search', middleware.checkGlobalPrivacySettings, controllers.users.getUsersForSearch);
/* Misc */
app.get('/sitemap.xml', controllers.sitemap);
app.get('/robots.txt', controllers.robots);
// Other routes
require('./plugins')(app);
pluginRoutes(app, middleware, controllers);
// Debug routes
if (process.env.NODE_ENV === 'development') {
require('./debug')(app);
}
var custom_routes = {
'routes': [],
'api': [],
'templates': []
};
app.get_custom_templates = function() {
return custom_routes.templates.map(function(tpl) {
return tpl.template;
});
};
plugins.ready(function() {
/*
* TO BE DEPRECATED post 0.4x
*/
plugins.fireHook('filter:server.create_routes', custom_routes, function(err, custom_routes) {
var route,
routes = custom_routes.routes;
for (route in routes) {
if (routes.hasOwnProperty(route)) {
(function(route) {
app[routes[route].method || 'get'](routes[route].route, function(req, res) {
routes[route].options(req, res, function(options) {
app.build_header({
req: options.req || req,
res: options.res || res
}, function (err, header) {
//res.send(header + options.content + templates.footer);
});
});
});
}(route));
require('./debug')(app, middleware, controllers);
}
}
var apiRoutes = custom_routes.api;
for (route in apiRoutes) {
if (apiRoutes.hasOwnProperty(route)) {
(function(route) {
app[apiRoutes[route].method || 'get']('/api' + apiRoutes[route].route, function(req, res) {
apiRoutes[route].callback(req, res, function(data) {
res.json(data);
});
});
}(route));
}
}
var templateRoutes = custom_routes.templates;
for (route in templateRoutes) {
if (templateRoutes.hasOwnProperty(route)) {
(function(route) {
app.get('/templates/' + templateRoutes[route].template, function(req, res) {
res.send(templateRoutes[route].content);
});
}(route));
}
}
});
});
});
};

@ -1,14 +1,38 @@
"use strict";
var path = require('path'),
nconf = require('nconf'),
less = require('less'),
meta = require('../meta'),
db = require('../database'),
plugins = require('../plugins');
plugins = require('../plugins'),
minificationEnabled = false;
function sendMinifiedJS(req, res, next) {
function sendCached() {
return res.type('text/javascript').send(meta.js.cache);
}
if (meta.js.cache) {
sendCached();
} else {
if (minificationEnabled) {
meta.js.minify(function() {
sendCached();
});
} else {
// Compress only
meta.js.concatenate(function() {
sendCached();
});
}
}
}
(function (Meta) {
Meta.createRoutes = function(app) {
app.get('/stylesheet.css', function(req, res) {
function sendStylesheet(req, res, next) {
if (meta.css.cache) {
res.type('text/css').send(200, meta.css.cache);
return;
@ -42,26 +66,13 @@ var path = require('path'),
res.type('text/css').send(200, meta.css.cache);
});
});
});
}
app.get('/nodebb.min.js', function(req, res) {
var sendCached = function() {
return res.type('text/javascript').send(meta.js.cache);
}
if (meta.js.cache) {
sendCached();
} else {
if (app.enabled('minification')) {
meta.js.minify(function() {
sendCached();
});
} else {
// Compress only
meta.js.concatenate(function() {
sendCached();
});
}
}
});
};
})(exports);
module.exports = function(app, middleware, controllers) {
minificationEnabled = app.enabled('minification');
app.get('/stylesheet.css', sendStylesheet);
app.get('/nodebb.min.js', sendMinifiedJS);
app.get('/sitemap.xml', controllers.sitemap);
app.get('/robots.txt', controllers.robots);
};

@ -6,9 +6,119 @@ var nconf = require('nconf'),
validator = require('validator'),
_ = require('underscore'),
async = require('async'),
plugins = require('../plugins'),
PluginRoutes = function(app) {
plugins = require('../plugins');
function setupPluginRoutes(app) {
var custom_routes = {
'routes': [],
'api': [],
'templates': []
};
app.get_custom_templates = function() {
return custom_routes.templates.map(function(tpl) {
return tpl.template;
});
};
plugins.ready(function() {
/*
* TO BE DEPRECATED post 0.4x and replaced with something that isn't as complicated as this...
*/
plugins.fireHook('filter:server.create_routes', custom_routes, function(err, custom_routes) {
var route,
routes = custom_routes.routes;
for (route in routes) {
if (routes.hasOwnProperty(route)) {
(function(route) {
app[routes[route].method || 'get'](routes[route].route, function(req, res) {
routes[route].options(req, res, function(options) {
app.build_header({
req: options.req || req,
res: options.res || res
}, function (err, header) {
//res.send(header + options.content + templates.footer);
});
});
});
}(route));
}
}
var apiRoutes = custom_routes.api;
for (route in apiRoutes) {
if (apiRoutes.hasOwnProperty(route)) {
(function(route) {
app[apiRoutes[route].method || 'get']('/api' + apiRoutes[route].route, function(req, res) {
apiRoutes[route].callback(req, res, function(data) {
res.json(data);
});
});
}(route));
}
}
var templateRoutes = custom_routes.templates;
for (route in templateRoutes) {
if (templateRoutes.hasOwnProperty(route)) {
(function(route) {
app.get('/templates/' + templateRoutes[route].template, function(req, res) {
res.send(templateRoutes[route].content);
});
}(route));
}
}
});
});
}
function setupPluginAdminRoutes(app) {
var custom_routes = {
'routes': [],
'api': []
};
plugins.ready(function() {
/*
* TO BE DEPRECATED post 0.4x and replaced with something that isn't as complicated as this...
*/
plugins.fireHook('filter:admin.create_routes', custom_routes, function(err, custom_routes) {
var route, routes = custom_routes.routes;
for (route in routes) {
if (routes.hasOwnProperty(route)) {
(function(route) {
app[routes[route].method || 'get']('/admin' + routes[route].route, function(req, res) {
routes[route].options(req, res, function(options) {
Admin.buildHeader(req, res, function (err, header) {
//res.send(header + options.content + templates['admin/footer']);
});
});
});
}(route));
}
}
var apiRoutes = custom_routes.api;
for (route in apiRoutes) {
if (apiRoutes.hasOwnProperty(route)) {
(function(route) {
app[apiRoutes[route].method || 'get']('/api/admin' + apiRoutes[route].route, function(req, res) {
apiRoutes[route].callback(req, res, function(data) {
res.json(data);
});
});
}(route));
}
}
});
});
}
module.exports = function(app, middleware, controllers) {
/**
* GET/PUT /plugins/fireHook to be deprecated after 0.4.x
*
@ -73,6 +183,7 @@ var nconf = require('nconf'),
res.redirect('/404');
}
});
};
module.exports = PluginRoutes;
setupPluginRoutes(app);
setupPluginAdminRoutes(app);
};

@ -14,12 +14,7 @@ var path = require('path'),
plugins = require('./plugins'),
logger = require('./logger'),
middleware = require('./middleware'),
routes = require('./routes'),
admin = require('./routes/admin'),
apiRoute = require('./routes/api'),
feedsRoute = require('./routes/feeds'),
metaRoute = require('./routes/meta');
routes = require('./routes');
if(nconf.get('ssl')) {
server = require('https').createServer({

Loading…
Cancel
Save