mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-08 06:55:46 +01:00
express-namespaceing routes
This commit is contained in:
@@ -13,7 +13,7 @@
|
|||||||
"socket.io": "~0.9.16",
|
"socket.io": "~0.9.16",
|
||||||
"redis": "0.8.3",
|
"redis": "0.8.3",
|
||||||
"express": "3.2.0",
|
"express": "3.2.0",
|
||||||
"express-namespace": "0.1.1",
|
"express-namespace": "~0.1.1",
|
||||||
"emailjs": "0.3.4",
|
"emailjs": "0.3.4",
|
||||||
"cookie": "0.0.6",
|
"cookie": "0.0.6",
|
||||||
"connect-redis": "1.4.5",
|
"connect-redis": "1.4.5",
|
||||||
|
|||||||
@@ -8,24 +8,24 @@ var user = require('./../user.js'),
|
|||||||
winston = require('winston'),
|
winston = require('winston'),
|
||||||
nconf = require('nconf');
|
nconf = require('nconf');
|
||||||
|
|
||||||
(function(Admin) {
|
(function (Admin) {
|
||||||
Admin.isAdmin = function(req, res, next) {
|
Admin.isAdmin = function (req, res, next) {
|
||||||
user.isAdministrator((req.user && req.user.uid) ? req.user.uid : 0, function(isAdmin) {
|
user.isAdministrator((req.user && req.user.uid) ? req.user.uid : 0, function (isAdmin) {
|
||||||
if (!isAdmin) res.redirect('/403');
|
if (!isAdmin) res.redirect('/403');
|
||||||
else next();
|
else next();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.build_header = function(res) {
|
Admin.build_header = function (res) {
|
||||||
return templates['admin/header'].parse({
|
return templates['admin/header'].parse({
|
||||||
csrf: res.locals.csrf_token,
|
csrf: res.locals.csrf_token,
|
||||||
relative_path: nconf.get('relative_path')
|
relative_path: nconf.get('relative_path')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.create_routes = function(app) {
|
Admin.create_routes = function (app) {
|
||||||
|
|
||||||
(function() {
|
(function () {
|
||||||
var routes = [
|
var routes = [
|
||||||
'categories/active', 'categories/disabled', 'users', 'topics', 'settings', 'themes',
|
'categories/active', 'categories/disabled', 'users', 'topics', 'settings', 'themes',
|
||||||
'twitter', 'facebook', 'gplus', 'redis', 'motd', 'groups',
|
'twitter', 'facebook', 'gplus', 'redis', 'motd', 'groups',
|
||||||
@@ -34,8 +34,8 @@ var user = require('./../user.js'),
|
|||||||
];
|
];
|
||||||
|
|
||||||
for (var i = 0, ii = routes.length; i < ii; i++) {
|
for (var i = 0, ii = routes.length; i < ii; i++) {
|
||||||
(function(route) {
|
(function (route) {
|
||||||
app.get('/admin/' + route, Admin.isAdmin, function(req, res) {
|
app.get('/admin/' + route, Admin.isAdmin, function (req, res) {
|
||||||
res.send(Admin.build_header(res) + app.create_route('admin/' + route) + templates['admin/footer']);
|
res.send(Admin.build_header(res) + app.create_route('admin/' + route) + templates['admin/footer']);
|
||||||
});
|
});
|
||||||
}(routes[i]));
|
}(routes[i]));
|
||||||
@@ -44,8 +44,8 @@ var user = require('./../user.js'),
|
|||||||
var unit_tests = ['categories'];
|
var unit_tests = ['categories'];
|
||||||
|
|
||||||
for (var i = 0, ii = unit_tests.length; i < ii; i++) {
|
for (var i = 0, ii = unit_tests.length; i < ii; i++) {
|
||||||
(function(route) {
|
(function (route) {
|
||||||
app.get('/admin/testing/' + route, Admin.isAdmin, function(req, res) {
|
app.get('/admin/testing/' + route, Admin.isAdmin, function (req, res) {
|
||||||
res.send(Admin.build_header(res) + app.create_route('admin/testing/' + route) + templates['admin/footer']);
|
res.send(Admin.build_header(res) + app.create_route('admin/testing/' + route) + templates['admin/footer']);
|
||||||
});
|
});
|
||||||
}(unit_tests[i]));
|
}(unit_tests[i]));
|
||||||
@@ -53,21 +53,24 @@ var user = require('./../user.js'),
|
|||||||
|
|
||||||
}());
|
}());
|
||||||
|
|
||||||
app.get('/admin', Admin.isAdmin, function(req, res) {
|
app.namespace('/admin', function () {
|
||||||
|
app.get('/', Admin.isAdmin, function (req, res) {
|
||||||
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']);
|
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/admin/index', Admin.isAdmin, function(req, res) {
|
app.get('/index', Admin.isAdmin, function (req, res) {
|
||||||
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']);
|
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
app.get('/api/admin/index', function(req, res) {
|
app.namespace('/api/admin', function () {
|
||||||
|
app.get('/index', function (req, res) {
|
||||||
res.json({
|
res.json({
|
||||||
version: pkg.version
|
version: pkg.version
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/users/search', function(req, res) {
|
app.get('/users/search', function (req, res) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'block',
|
search_display: 'block',
|
||||||
loadmore_display: 'none',
|
loadmore_display: 'none',
|
||||||
@@ -75,8 +78,8 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/users/latest', function(req, res) {
|
app.get('/users/latest', function (req, res) {
|
||||||
user.getUsers('users:joindate', 0, 49, function(err, data) {
|
user.getUsers('users:joindate', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
loadmore_display: 'block',
|
loadmore_display: 'block',
|
||||||
@@ -86,8 +89,8 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/users/sort-posts', function(req, res) {
|
app.get('/users/sort-posts', function (req, res) {
|
||||||
user.getUsers('users:postcount', 0, 49, function(err, data) {
|
user.getUsers('users:postcount', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
loadmore_display: 'block',
|
loadmore_display: 'block',
|
||||||
@@ -97,8 +100,8 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/users/sort-reputation', function(req, res) {
|
app.get('/users/sort-reputation', function (req, res) {
|
||||||
user.getUsers('users:reputation', 0, 49, function(err, data) {
|
user.getUsers('users:reputation', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
loadmore_display: 'block',
|
loadmore_display: 'block',
|
||||||
@@ -108,8 +111,8 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/users', function(req, res) {
|
app.get('/users', function (req, res) {
|
||||||
user.getUsers('users:joindate', 0, 49, function(err, data) {
|
user.getUsers('users:joindate', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
users: data,
|
users: data,
|
||||||
@@ -118,40 +121,40 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/categories', function(req, res) {
|
app.get('/categories', function (req, res) {
|
||||||
categories.getAllCategories(function(data) {
|
categories.getAllCategories(function (data) {
|
||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/categories/active', function(req, res) {
|
app.get('/categories/active', function (req, res) {
|
||||||
categories.getAllCategories(function(data) {
|
categories.getAllCategories(function (data) {
|
||||||
data.categories = data.categories.filter(function(category) {
|
data.categories = data.categories.filter(function (category) {
|
||||||
return (!category.disabled || category.disabled === "0");
|
return (!category.disabled || category.disabled === "0");
|
||||||
});
|
});
|
||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/categories/disabled', function(req, res) {
|
app.get('/categories/disabled', function (req, res) {
|
||||||
categories.getAllCategories(function(data) {
|
categories.getAllCategories(function (data) {
|
||||||
data.categories = data.categories.filter(function(category) {
|
data.categories = data.categories.filter(function (category) {
|
||||||
return category.disabled === "1";
|
return category.disabled === "1";
|
||||||
});
|
});
|
||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/topics', function(req, res) {
|
app.get('/topics', function (req, res) {
|
||||||
topics.getAllTopics(10, null, function(topics) {
|
topics.getAllTopics(10, null, function (topics) {
|
||||||
res.json({
|
res.json({
|
||||||
topics: topics
|
topics: topics
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/redis', function(req, res) {
|
app.get('/redis', function (req, res) {
|
||||||
RDB.info(function(err, data) {
|
RDB.info(function (err, data) {
|
||||||
data = data.split("\r\n");
|
data = data.split("\r\n");
|
||||||
var finalData = {};
|
var finalData = {};
|
||||||
|
|
||||||
@@ -177,8 +180,8 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/plugins', function(req, res) {
|
app.get('/plugins', function (req, res) {
|
||||||
plugins.showInstalled(function(err, plugins) {
|
plugins.showInstalled(function (err, plugins) {
|
||||||
if (err || !Array.isArray(plugins)) plugins = [];
|
if (err || !Array.isArray(plugins)) plugins = [];
|
||||||
|
|
||||||
res.json(200, {
|
res.json(200, {
|
||||||
@@ -187,43 +190,44 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/settings', function(req, res) {
|
app.get('/settings', function (req, res) {
|
||||||
res.json(200, {});
|
res.json(200, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/motd', function(req, res) {
|
app.get('/motd', function (req, res) {
|
||||||
res.json(200, {});
|
res.json(200, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/themes', function(req, res) {
|
app.get('/themes', function (req, res) {
|
||||||
res.json(200, {});
|
res.json(200, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/twitter', function(req, res) {
|
app.get('/twitter', function (req, res) {
|
||||||
res.json(200, {});
|
res.json(200, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/facebook', function(req, res) {
|
app.get('/facebook', function (req, res) {
|
||||||
res.json(200, {});
|
res.json(200, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/gplus', function(req, res) {
|
app.get('/gplus', function (req, res) {
|
||||||
res.json(200, {});
|
res.json(200, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/testing/categories', function(req, res) {
|
app.get('/testing/categories', function (req, res) {
|
||||||
res.json(200, {});
|
res.json(200, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/admin/groups', function(req, res) {
|
app.get('/groups', function (req, res) {
|
||||||
Groups.list({
|
Groups.list({
|
||||||
expand: true
|
expand: true
|
||||||
}, function(err, groups) {
|
}, function (err, groups) {
|
||||||
res.json(200, {
|
res.json(200, {
|
||||||
groups: groups
|
groups: groups
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,44 +9,45 @@ var user = require('./../user.js'),
|
|||||||
nconf = require('nconf');
|
nconf = require('nconf');
|
||||||
|
|
||||||
|
|
||||||
(function(Api) {
|
(function (Api) {
|
||||||
Api.create_routes = function(app) {
|
Api.create_routes = function (app) {
|
||||||
app.get('/api/get_templates_listing', function(req, res) {
|
app.namespace('/api', function () {
|
||||||
utils.walk(path.join(__dirname, '../../', 'public/templates'), function(err, data) {
|
app.get('/get_templates_listing', function (req, res) {
|
||||||
|
utils.walk(path.join(__dirname, '../../', 'public/templates'), function (err, data) {
|
||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/config', function(req, res, next) {
|
app.get('/config', function (req, res, next) {
|
||||||
var config = require('../../public/config.json');
|
var config = require('../../public/config.json');
|
||||||
|
|
||||||
config['postDelay'] = meta.config['postDelay'];
|
config.postDelay = meta.config.postDelay;
|
||||||
config['minimumTitleLength'] = meta.config['minimumTitleLength'];
|
config.minimumTitleLength = meta.config.minimumTitleLength;
|
||||||
config['minimumPostLength'] = meta.config['minimumPostLength'];
|
config.minimumPostLength = meta.config.minimumPostLength;
|
||||||
config['imgurClientIDSet'] = !! meta.config['imgurClientID'];
|
config.imgurClientIDSet = !! meta.config.imgurClientID;
|
||||||
config['minimumUsernameLength'] = meta.config['minimumUsernameLength'];
|
config.minimumUsernameLength = meta.config.minimumUsernameLength;
|
||||||
config['maximumUsernameLength'] = meta.config['maximumUsernameLength'];
|
config.maximumUsernameLength = meta.config.maximumUsernameLength;
|
||||||
config['minimumPasswordLength'] = meta.config['minimumPasswordLength'];
|
config.minimumPasswordLength = meta.config.minimumPasswordLength;
|
||||||
|
|
||||||
res.json(200, config);
|
res.json(200, config);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/home', function(req, res) {
|
app.get('/home', function (req, res) {
|
||||||
var uid = (req.user) ? req.user.uid : 0;
|
var uid = (req.user) ? req.user.uid : 0;
|
||||||
categories.getAllCategories(function(data) {
|
categories.getAllCategories(function (data) {
|
||||||
data.categories = data.categories.filter(function(category) {
|
data.categories = data.categories.filter(function (category) {
|
||||||
return (!category.disabled || category.disabled === "0");
|
return (!category.disabled || category.disabled === "0");
|
||||||
});
|
});
|
||||||
|
|
||||||
function iterator(category, callback) {
|
function iterator(category, callback) {
|
||||||
categories.getRecentReplies(category.cid, 2, function(posts) {
|
categories.getRecentReplies(category.cid, 2, function (posts) {
|
||||||
category["posts"] = posts;
|
category.posts = posts;
|
||||||
category["post_count"] = posts.length > 2 ? 2 : posts.length;
|
category.post_count = posts.length > 2 ? 2 : posts.length;
|
||||||
callback(null);
|
callback(null);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
require('async').each(data.categories, iterator, function(err) {
|
require('async').each(data.categories, iterator, function (err) {
|
||||||
data.motd_class = (meta.config.show_motd === '1' || meta.config.show_motd === undefined) ? '' : 'none';
|
data.motd_class = (meta.config.show_motd === '1' || meta.config.show_motd === undefined) ? '' : 'none';
|
||||||
data.motd = require('marked')(meta.config.motd || "# NodeBB <span>v " + pkg.version + "</span>\nWelcome to NodeBB, the discussion platform of the future.\n\n<div class='btn-group'><a target=\"_blank\" href=\"http://www.nodebb.org\" class=\"btn btn-default btn-lg\"><i class=\"icon-comment\"></i><span class='hidden-mobile'> Get NodeBB</span></a> <a target=\"_blank\" href=\"https://github.com/designcreateplay/NodeBB\" class=\"btn btn-default btn-lg\"><i class=\"icon-github-alt\"></i><span class='hidden-mobile'> Fork us on Github</span></a> <a target=\"_blank\" href=\"https://twitter.com/dcplabs\" class=\"btn btn-default btn-lg\"><i class=\"icon-twitter\"></i><span class='hidden-mobile'> @dcplabs</span></a></div>");
|
data.motd = require('marked')(meta.config.motd || "# NodeBB <span>v " + pkg.version + "</span>\nWelcome to NodeBB, the discussion platform of the future.\n\n<div class='btn-group'><a target=\"_blank\" href=\"http://www.nodebb.org\" class=\"btn btn-default btn-lg\"><i class=\"icon-comment\"></i><span class='hidden-mobile'> Get NodeBB</span></a> <a target=\"_blank\" href=\"https://github.com/designcreateplay/NodeBB\" class=\"btn btn-default btn-lg\"><i class=\"icon-github-alt\"></i><span class='hidden-mobile'> Fork us on Github</span></a> <a target=\"_blank\" href=\"https://twitter.com/dcplabs\" class=\"btn btn-default btn-lg\"><i class=\"icon-twitter\"></i><span class='hidden-mobile'> @dcplabs</span></a></div>");
|
||||||
res.json(data);
|
res.json(data);
|
||||||
@@ -55,7 +56,7 @@ var user = require('./../user.js'),
|
|||||||
}, uid);
|
}, uid);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/login', function(req, res) {
|
app.get('/login', function (req, res) {
|
||||||
var data = {},
|
var data = {},
|
||||||
login_strategies = auth.get_login_strategies(),
|
login_strategies = auth.get_login_strategies(),
|
||||||
num_strategies = login_strategies.length;
|
num_strategies = login_strategies.length;
|
||||||
@@ -80,7 +81,7 @@ var user = require('./../user.js'),
|
|||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/register', function(req, res) {
|
app.get('/register', function (req, res) {
|
||||||
var data = {},
|
var data = {},
|
||||||
login_strategies = auth.get_login_strategies(),
|
login_strategies = auth.get_login_strategies(),
|
||||||
num_strategies = login_strategies.length;
|
num_strategies = login_strategies.length;
|
||||||
@@ -107,9 +108,9 @@ var user = require('./../user.js'),
|
|||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/topic/:id/:slug?', function(req, res, next) {
|
app.get('/topic/:id/:slug?', function (req, res, next) {
|
||||||
var uid = (req.user) ? req.user.uid : 0;
|
var uid = (req.user) ? req.user.uid : 0;
|
||||||
topics.getTopicWithPosts(req.params.id, uid, 0, 10, function(err, data) {
|
topics.getTopicWithPosts(req.params.id, uid, 0, 10, function (err, data) {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
if (data.deleted === '1' && data.expose_tools === 0) {
|
if (data.deleted === '1' && data.expose_tools === 0) {
|
||||||
return res.json(404, {});
|
return res.json(404, {});
|
||||||
@@ -119,9 +120,9 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/category/:id/:slug?', function(req, res, next) {
|
app.get('/category/:id/:slug?', function (req, res, next) {
|
||||||
var uid = (req.user) ? req.user.uid : 0;
|
var uid = (req.user) ? req.user.uid : 0;
|
||||||
categories.getCategoryById(req.params.id, uid, function(err, data) {
|
categories.getCategoryById(req.params.id, uid, function (err, data) {
|
||||||
if (!err)
|
if (!err)
|
||||||
res.json(data);
|
res.json(data);
|
||||||
else
|
else
|
||||||
@@ -129,29 +130,29 @@ var user = require('./../user.js'),
|
|||||||
}, req.params.id, uid);
|
}, req.params.id, uid);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/recent', function(req, res) {
|
app.get('/recent', function (req, res) {
|
||||||
var uid = (req.user) ? req.user.uid : 0;
|
var uid = (req.user) ? req.user.uid : 0;
|
||||||
topics.getLatestTopics(uid, 0, 19, function(data) {
|
topics.getLatestTopics(uid, 0, 19, function (data) {
|
||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/unread', function(req, res) {
|
app.get('/unread', function (req, res) {
|
||||||
var uid = (req.user) ? req.user.uid : 0;
|
var uid = (req.user) ? req.user.uid : 0;
|
||||||
topics.getUnreadTopics(uid, 0, 19, function(data) {
|
topics.getUnreadTopics(uid, 0, 19, function (data) {
|
||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/unread/total', function(req, res) {
|
app.get('/unread/total', function (req, res) {
|
||||||
var uid = (req.user) ? req.user.uid : 0;
|
var uid = (req.user) ? req.user.uid : 0;
|
||||||
topics.getTotalUnread(uid, function(data) {
|
topics.getTotalUnread(uid, function (data) {
|
||||||
res.json(data);
|
res.json(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/confirm/:id', function(req, res) {
|
app.get('/confirm/:id', function (req, res) {
|
||||||
user.email.confirm(req.params.id, function(data) {
|
user.email.confirm(req.params.id, function (data) {
|
||||||
if (data.status === 'ok') {
|
if (data.status === 'ok') {
|
||||||
res.json({
|
res.json({
|
||||||
'alert-class': 'alert-success',
|
'alert-class': 'alert-success',
|
||||||
@@ -168,7 +169,7 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/outgoing', function(req, res) {
|
app.get('/outgoing', function (req, res) {
|
||||||
var url = req.query.url;
|
var url = req.query.url;
|
||||||
|
|
||||||
if (url) {
|
if (url) {
|
||||||
@@ -182,7 +183,7 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/search', function(req, res) {
|
app.get('/search', function (req, res) {
|
||||||
return res.json({
|
return res.json({
|
||||||
show_no_topics: 'hide',
|
show_no_topics: 'hide',
|
||||||
show_no_posts: 'hide',
|
show_no_posts: 'hide',
|
||||||
@@ -193,7 +194,7 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/search/:term', function(req, res, next) {
|
app.get('/search/:term', function (req, res, next) {
|
||||||
|
|
||||||
var reds = require('reds');
|
var reds = require('reds');
|
||||||
var postSearch = reds.createSearch('nodebbpostsearch');
|
var postSearch = reds.createSearch('nodebbpostsearch');
|
||||||
@@ -206,11 +207,11 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
function searchPosts(callback) {
|
function searchPosts(callback) {
|
||||||
search(postSearch, function(err, pids) {
|
search(postSearch, function (err, pids) {
|
||||||
if (err)
|
if (err)
|
||||||
return callback(err, null);
|
return callback(err, null);
|
||||||
|
|
||||||
posts.getPostSummaryByPids(pids, function(err, posts) {
|
posts.getPostSummaryByPids(pids, function (err, posts) {
|
||||||
if (err)
|
if (err)
|
||||||
return callback(err, null);
|
return callback(err, null);
|
||||||
callback(null, posts);
|
callback(null, posts);
|
||||||
@@ -219,17 +220,17 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
function searchTopics(callback) {
|
function searchTopics(callback) {
|
||||||
search(topicSearch, function(err, tids) {
|
search(topicSearch, function (err, tids) {
|
||||||
if (err)
|
if (err)
|
||||||
return callback(err, null);
|
return callback(err, null);
|
||||||
|
|
||||||
topics.getTopicsByTids(tids, 0, function(topics) {
|
topics.getTopicsByTids(tids, 0, function (topics) {
|
||||||
callback(null, topics);
|
callback(null, topics);
|
||||||
}, 0);
|
}, 0);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async.parallel([searchPosts, searchTopics], function(err, results) {
|
async.parallel([searchPosts, searchTopics], function (err, results) {
|
||||||
if (err)
|
if (err)
|
||||||
return next();
|
return next();
|
||||||
|
|
||||||
@@ -244,22 +245,23 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/reset', function(req, res) {
|
app.get('/reset', function (req, res) {
|
||||||
res.json({});
|
res.json({});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/reset/:code', function(req, res) {
|
app.get('/reset/:code', function (req, res) {
|
||||||
res.json({
|
res.json({
|
||||||
reset_code: req.params.code
|
reset_code: req.params.code
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/404', function(req, res) {
|
app.get('/404', function (req, res) {
|
||||||
res.json({});
|
res.json({});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/403', function(req, res) {
|
app.get('/403', function (req, res) {
|
||||||
res.json({});
|
res.json({});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}(exports));
|
}(exports));
|
||||||
@@ -8,15 +8,15 @@ var user = require('./../user.js'),
|
|||||||
nconf = require('nconf'),
|
nconf = require('nconf'),
|
||||||
meta = require('./../meta');
|
meta = require('./../meta');
|
||||||
|
|
||||||
(function(User) {
|
(function (User) {
|
||||||
User.create_routes = function(app) {
|
User.create_routes = function (app) {
|
||||||
|
|
||||||
app.get('/uid/:uid', function(req, res) {
|
app.get('/uid/:uid', function (req, res) {
|
||||||
|
|
||||||
if (!req.params.uid)
|
if (!req.params.uid)
|
||||||
return res.redirect('/404');
|
return res.redirect('/404');
|
||||||
|
|
||||||
user.getUserData(req.params.uid, function(err, data) {
|
user.getUserData(req.params.uid, function (err, data) {
|
||||||
if (data) {
|
if (data) {
|
||||||
res.send(data);
|
res.send(data);
|
||||||
} else {
|
} else {
|
||||||
@@ -27,68 +27,71 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users', function(req, res) {
|
app.namespace('/users', function () {
|
||||||
|
app.get('', function (req, res) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route("users", "users") + templates['footer']);
|
res.send(header + app.create_route("users", "users") + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users/latest', function(req, res) {
|
app.get('/latest', function (req, res) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route("users/latest", "users") + templates['footer']);
|
res.send(header + app.create_route("users/latest", "users") + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users/sort-posts', function(req, res) {
|
app.get('/sort-posts', function (req, res) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route("users/sort-posts", "users") + templates['footer']);
|
res.send(header + app.create_route("users/sort-posts", "users") + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users/sort-reputation', function(req, res) {
|
app.get('/sort-reputation', function (req, res) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route("users/sort-reputation", "users") + templates['footer']);
|
res.send(header + app.create_route("users/sort-reputation", "users") + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users/online', function(req, res) {
|
app.get('/online', function (req, res) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route("users/online", "users") + templates['footer']);
|
res.send(header + app.create_route("users/online", "users") + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users/search', function(req, res) {
|
app.get('/search', function (req, res) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route("users/search", "users") + templates['footer']);
|
res.send(header + app.create_route("users/search", "users") + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
app.get('/user/:userslug', function(req, res, next) {
|
app.namespace('/user', function () {
|
||||||
|
app.get('/:userslug', function (req, res, next) {
|
||||||
|
|
||||||
if (!req.params.userslug) {
|
if (!req.params.userslug) {
|
||||||
next();
|
next();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
|
user.get_uid_by_userslug(req.params.userslug, function (err, uid) {
|
||||||
if (!uid) {
|
if (!uid) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
@@ -96,24 +99,24 @@ var user = require('./../user.js'),
|
|||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route('user/' + req.params.userslug, 'account') + templates['footer']);
|
res.send(header + app.create_route('user/' + req.params.userslug, 'account') + templates['footer']);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/user/:userslug/edit', function(req, res) {
|
app.get('/:userslug/edit', function (req, res) {
|
||||||
|
|
||||||
if (!req.user)
|
if (!req.user)
|
||||||
return res.redirect('/403');
|
return res.redirect('/403');
|
||||||
|
|
||||||
user.getUserField(req.user.uid, 'userslug', function(err, userslug) {
|
user.getUserField(req.user.uid, 'userslug', function (err, userslug) {
|
||||||
if (req.params.userslug && userslug === req.params.userslug) {
|
if (req.params.userslug && userslug === req.params.userslug) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route('user/' + req.params.userslug + '/edit', 'accountedit') + templates['footer']);
|
res.send(header + app.create_route('user/' + req.params.userslug + '/edit', 'accountedit') + templates['footer']);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -122,17 +125,17 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/user/:userslug/settings', function(req, res) {
|
app.get('/:userslug/settings', function (req, res) {
|
||||||
|
|
||||||
if (!req.user)
|
if (!req.user)
|
||||||
return res.redirect('/403');
|
return res.redirect('/403');
|
||||||
|
|
||||||
user.getUserField(req.user.uid, 'userslug', function(err, userslug) {
|
user.getUserField(req.user.uid, 'userslug', function (err, userslug) {
|
||||||
if (req.params.userslug && userslug === req.params.userslug) {
|
if (req.params.userslug && userslug === req.params.userslug) {
|
||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route('user/' + req.params.userslug + '/settings', 'accountsettings') + templates['footer']);
|
res.send(header + app.create_route('user/' + req.params.userslug + '/settings', 'accountsettings') + templates['footer']);
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@@ -141,7 +144,7 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.post('/user/uploadpicture', function(req, res) {
|
app.post('/uploadpicture', function (req, res) {
|
||||||
if (!req.user)
|
if (!req.user)
|
||||||
return res.redirect('/403');
|
return res.redirect('/403');
|
||||||
|
|
||||||
@@ -163,7 +166,7 @@ var user = require('./../user.js'),
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.getUserField(req.user.uid, 'uploadedpicture', function(err, oldpicture) {
|
user.getUserField(req.user.uid, 'uploadedpicture', function (err, oldpicture) {
|
||||||
if (!oldpicture) {
|
if (!oldpicture) {
|
||||||
uploadUserPicture(req.user.uid, path.extname(req.files.userPhoto.name), req.files.userPhoto.path, res);
|
uploadUserPicture(req.user.uid, path.extname(req.files.userPhoto.name), req.files.userPhoto.path, res);
|
||||||
return;
|
return;
|
||||||
@@ -171,7 +174,7 @@ var user = require('./../user.js'),
|
|||||||
|
|
||||||
var absolutePath = path.join(process.cwd(), nconf.get('upload_path'), path.basename(oldpicture));
|
var absolutePath = path.join(process.cwd(), nconf.get('upload_path'), path.basename(oldpicture));
|
||||||
|
|
||||||
fs.unlink(absolutePath, function(err) {
|
fs.unlink(absolutePath, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.err(err);
|
winston.err(err);
|
||||||
}
|
}
|
||||||
@@ -180,6 +183,7 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
function uploadUserPicture(uid, extension, tempPath, res) {
|
function uploadUserPicture(uid, extension, tempPath, res) {
|
||||||
if (!extension) {
|
if (!extension) {
|
||||||
@@ -197,7 +201,7 @@ var user = require('./../user.js'),
|
|||||||
var is = fs.createReadStream(tempPath);
|
var is = fs.createReadStream(tempPath);
|
||||||
var os = fs.createWriteStream(uploadPath);
|
var os = fs.createWriteStream(uploadPath);
|
||||||
|
|
||||||
is.on('end', function() {
|
is.on('end', function () {
|
||||||
fs.unlinkSync(tempPath);
|
fs.unlinkSync(tempPath);
|
||||||
|
|
||||||
var imageUrl = nconf.get('upload_url') + filename;
|
var imageUrl = nconf.get('upload_url') + filename;
|
||||||
@@ -210,7 +214,7 @@ var user = require('./../user.js'),
|
|||||||
dstPath: uploadPath,
|
dstPath: uploadPath,
|
||||||
width: 128,
|
width: 128,
|
||||||
height: 128
|
height: 128
|
||||||
}, function(err, stdout, stderr) {
|
}, function (err, stdout, stderr) {
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.err(err);
|
winston.err(err);
|
||||||
}
|
}
|
||||||
@@ -221,7 +225,7 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
os.on('error', function(err) {
|
os.on('error', function (err) {
|
||||||
fs.unlinkSync(tempPath);
|
fs.unlinkSync(tempPath);
|
||||||
winston.err(err);
|
winston.err(err);
|
||||||
});
|
});
|
||||||
@@ -229,12 +233,12 @@ var user = require('./../user.js'),
|
|||||||
is.pipe(os);
|
is.pipe(os);
|
||||||
}
|
}
|
||||||
|
|
||||||
app.get('/user/:userslug/following', function(req, res) {
|
app.get('/user/:userslug/following', function (req, res) {
|
||||||
|
|
||||||
if (!req.user)
|
if (!req.user)
|
||||||
return res.redirect('/403');
|
return res.redirect('/403');
|
||||||
|
|
||||||
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
|
user.get_uid_by_userslug(req.params.userslug, function (err, uid) {
|
||||||
if (!uid) {
|
if (!uid) {
|
||||||
res.redirect('/404');
|
res.redirect('/404');
|
||||||
return;
|
return;
|
||||||
@@ -243,18 +247,18 @@ var user = require('./../user.js'),
|
|||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route('user/' + req.params.userslug + '/following', 'following') + templates['footer']);
|
res.send(header + app.create_route('user/' + req.params.userslug + '/following', 'following') + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/user/:userslug/followers', function(req, res) {
|
app.get('/user/:userslug/followers', function (req, res) {
|
||||||
|
|
||||||
if (!req.user)
|
if (!req.user)
|
||||||
return res.redirect('/403');
|
return res.redirect('/403');
|
||||||
|
|
||||||
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
|
user.get_uid_by_userslug(req.params.userslug, function (err, uid) {
|
||||||
if (!uid) {
|
if (!uid) {
|
||||||
res.redirect('/404');
|
res.redirect('/404');
|
||||||
return;
|
return;
|
||||||
@@ -262,18 +266,18 @@ var user = require('./../user.js'),
|
|||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route('user/' + req.params.userslug + '/followers', 'followers') + templates['footer']);
|
res.send(header + app.create_route('user/' + req.params.userslug + '/followers', 'followers') + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/user/:userslug/favourites', function(req, res) {
|
app.get('/user/:userslug/favourites', function (req, res) {
|
||||||
|
|
||||||
if (!req.user)
|
if (!req.user)
|
||||||
return res.redirect('/403');
|
return res.redirect('/403');
|
||||||
|
|
||||||
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
|
user.get_uid_by_userslug(req.params.userslug, function (err, uid) {
|
||||||
if (!uid) {
|
if (!uid) {
|
||||||
res.redirect('/404');
|
res.redirect('/404');
|
||||||
return;
|
return;
|
||||||
@@ -281,18 +285,18 @@ var user = require('./../user.js'),
|
|||||||
app.build_header({
|
app.build_header({
|
||||||
req: req,
|
req: req,
|
||||||
res: res
|
res: res
|
||||||
}, function(err, header) {
|
}, function (err, header) {
|
||||||
res.send(header + app.create_route('user/' + req.params.userslug + '/favourites', 'favourites') + templates['footer']);
|
res.send(header + app.create_route('user/' + req.params.userslug + '/favourites', 'favourites') + templates['footer']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/user/:userslug/following', function(req, res) {
|
app.get('/api/user/:userslug/following', function (req, res) {
|
||||||
var callerUID = req.user ? req.user.uid : '0';
|
var callerUID = req.user ? req.user.uid : '0';
|
||||||
|
|
||||||
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
|
getUserDataByUserSlug(req.params.userslug, callerUID, function (userData) {
|
||||||
if (userData) {
|
if (userData) {
|
||||||
user.getFollowing(userData.uid, function(followingData) {
|
user.getFollowing(userData.uid, function (followingData) {
|
||||||
userData.following = followingData;
|
userData.following = followingData;
|
||||||
userData.followingCount = followingData.length;
|
userData.followingCount = followingData.length;
|
||||||
res.json(userData);
|
res.json(userData);
|
||||||
@@ -306,12 +310,12 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/user/:userslug/followers', function(req, res) {
|
app.get('/api/user/:userslug/followers', function (req, res) {
|
||||||
var callerUID = req.user ? req.user.uid : '0';
|
var callerUID = req.user ? req.user.uid : '0';
|
||||||
|
|
||||||
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
|
getUserDataByUserSlug(req.params.userslug, callerUID, function (userData) {
|
||||||
if (userData) {
|
if (userData) {
|
||||||
user.getFollowers(userData.uid, function(followersData) {
|
user.getFollowers(userData.uid, function (followersData) {
|
||||||
userData.followers = followersData;
|
userData.followers = followersData;
|
||||||
userData.followersCount = followersData.length;
|
userData.followersCount = followersData.length;
|
||||||
res.json(userData);
|
res.json(userData);
|
||||||
@@ -324,18 +328,18 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/user/:userslug/edit', function(req, res) {
|
app.get('/api/user/:userslug/edit', function (req, res) {
|
||||||
var callerUID = req.user ? req.user.uid : '0';
|
var callerUID = req.user ? req.user.uid : '0';
|
||||||
|
|
||||||
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
|
getUserDataByUserSlug(req.params.userslug, callerUID, function (userData) {
|
||||||
res.json(userData);
|
res.json(userData);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/user/:userslug/settings', function(req, res, next) {
|
app.get('/api/user/:userslug/settings', function (req, res, next) {
|
||||||
var callerUID = req.user ? req.user.uid : '0';
|
var callerUID = req.user ? req.user.uid : '0';
|
||||||
|
|
||||||
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
|
user.get_uid_by_userslug(req.params.userslug, function (err, uid) {
|
||||||
if (!uid) {
|
if (!uid) {
|
||||||
res.json(404, {
|
res.json(404, {
|
||||||
error: 'User not found!'
|
error: 'User not found!'
|
||||||
@@ -351,7 +355,7 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
user.getUserFields(uid, ['username', 'userslug', 'showemail'], function(err, userData) {
|
user.getUserFields(uid, ['username', 'userslug', 'showemail'], function (err, userData) {
|
||||||
if (err)
|
if (err)
|
||||||
return next(err);
|
return next(err);
|
||||||
|
|
||||||
@@ -370,10 +374,10 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/user/:userslug/favourites', function(req, res, next) {
|
app.get('/api/user/:userslug/favourites', function (req, res, next) {
|
||||||
var callerUID = req.user ? req.user.uid : '0';
|
var callerUID = req.user ? req.user.uid : '0';
|
||||||
|
|
||||||
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
|
user.get_uid_by_userslug(req.params.userslug, function (err, uid) {
|
||||||
if (!uid) {
|
if (!uid) {
|
||||||
res.json(404, {
|
res.json(404, {
|
||||||
error: 'User not found!'
|
error: 'User not found!'
|
||||||
@@ -388,12 +392,12 @@ var user = require('./../user.js'),
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.getUserFields(uid, ['username', 'userslug'], function(err, userData) {
|
user.getUserFields(uid, ['username', 'userslug'], function (err, userData) {
|
||||||
if (err)
|
if (err)
|
||||||
return next(err);
|
return next(err);
|
||||||
|
|
||||||
if (userData) {
|
if (userData) {
|
||||||
posts.getFavourites(uid, function(err, posts) {
|
posts.getFavourites(uid, function (err, posts) {
|
||||||
if (err)
|
if (err)
|
||||||
return next(err);
|
return next(err);
|
||||||
userData.posts = posts;
|
userData.posts = posts;
|
||||||
@@ -409,15 +413,15 @@ var user = require('./../user.js'),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/api/user/:userslug', function(req, res) {
|
app.get('/api/user/:userslug', function (req, res) {
|
||||||
var callerUID = req.user ? req.user.uid : '0';
|
var callerUID = req.user ? req.user.uid : '0';
|
||||||
|
|
||||||
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
|
getUserDataByUserSlug(req.params.userslug, callerUID, function (userData) {
|
||||||
if (userData) {
|
if (userData) {
|
||||||
user.isFollowing(callerUID, userData.theirid, function(isFollowing) {
|
user.isFollowing(callerUID, userData.theirid, function (isFollowing) {
|
||||||
posts.getPostsByUid(userData.theirid, 0, 9, function(posts) {
|
posts.getPostsByUid(userData.theirid, 0, 9, function (posts) {
|
||||||
|
|
||||||
userData.posts = posts.filter(function(p) {
|
userData.posts = posts.filter(function (p) {
|
||||||
return p.deleted !== "1";
|
return p.deleted !== "1";
|
||||||
});
|
});
|
||||||
userData.isFollowing = isFollowing;
|
userData.isFollowing = isFollowing;
|
||||||
@@ -426,7 +430,7 @@ var user = require('./../user.js'),
|
|||||||
if (callerUID !== userData.uid)
|
if (callerUID !== userData.uid)
|
||||||
user.incrementUserFieldBy(userData.uid, 'profileviews', 1);
|
user.incrementUserFieldBy(userData.uid, 'profileviews', 1);
|
||||||
|
|
||||||
postTools.parse(userData.signature, function(err, signature) {
|
postTools.parse(userData.signature, function (err, signature) {
|
||||||
userData.signature = signature;
|
userData.signature = signature;
|
||||||
res.json(userData);
|
res.json(userData);
|
||||||
});
|
});
|
||||||
@@ -449,7 +453,7 @@ var user = require('./../user.js'),
|
|||||||
|
|
||||||
|
|
||||||
function getUsersSortedByJoinDate(req, res) {
|
function getUsersSortedByJoinDate(req, res) {
|
||||||
user.getUsers('users:joindate', 0, 49, function(err, data) {
|
user.getUsers('users:joindate', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
loadmore_display: 'block',
|
loadmore_display: 'block',
|
||||||
@@ -459,7 +463,7 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getUsersSortedByPosts(req, res) {
|
function getUsersSortedByPosts(req, res) {
|
||||||
user.getUsers('users:postcount', 0, 49, function(err, data) {
|
user.getUsers('users:postcount', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
loadmore_display: 'block',
|
loadmore_display: 'block',
|
||||||
@@ -469,7 +473,7 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getUsersSortedByReputation(req, res) {
|
function getUsersSortedByReputation(req, res) {
|
||||||
user.getUsers('users:reputation', 0, 49, function(err, data) {
|
user.getUsers('users:reputation', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
loadmore_display: 'block',
|
loadmore_display: 'block',
|
||||||
@@ -479,7 +483,7 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getOnlineUsers(req, res) {
|
function getOnlineUsers(req, res) {
|
||||||
user.getUsers('users:online', 0, 49, function(err, data) {
|
user.getUsers('users:online', 0, 49, function (err, data) {
|
||||||
res.json({
|
res.json({
|
||||||
search_display: 'none',
|
search_display: 'none',
|
||||||
loadmore_display: 'block',
|
loadmore_display: 'block',
|
||||||
@@ -497,14 +501,14 @@ var user = require('./../user.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getUserDataByUserSlug(userslug, callerUID, callback) {
|
function getUserDataByUserSlug(userslug, callerUID, callback) {
|
||||||
user.get_uid_by_userslug(userslug, function(err, uid) {
|
user.get_uid_by_userslug(userslug, function (err, uid) {
|
||||||
|
|
||||||
if (uid === null) {
|
if (uid === null) {
|
||||||
callback(null);
|
callback(null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.getUserData(uid, function(err, data) {
|
user.getUserData(uid, function (err, data) {
|
||||||
if (data) {
|
if (data) {
|
||||||
data.joindate = new Date(parseInt(data.joindate, 10)).toISOString();
|
data.joindate = new Date(parseInt(data.joindate, 10)).toISOString();
|
||||||
|
|
||||||
@@ -532,8 +536,8 @@ var user = require('./../user.js'),
|
|||||||
data.yourid = callerUID;
|
data.yourid = callerUID;
|
||||||
data.theirid = uid;
|
data.theirid = uid;
|
||||||
|
|
||||||
user.getFollowingCount(uid, function(followingCount) {
|
user.getFollowingCount(uid, function (followingCount) {
|
||||||
user.getFollowerCount(uid, function(followerCount) {
|
user.getFollowerCount(uid, function (followerCount) {
|
||||||
data.followingCount = followingCount;
|
data.followingCount = followingCount;
|
||||||
data.followerCount = followerCount;
|
data.followerCount = followerCount;
|
||||||
callback(data);
|
callback(data);
|
||||||
|
|||||||
Reference in New Issue
Block a user