user route cleanup

v1.18.x
Baris Soner Usakli 11 years ago
parent cec718de26
commit 905a99e638

@ -141,8 +141,6 @@ var fs = require('fs'),
}); });
}); });
app.post('/uploadpicture', function (req, res) { app.post('/uploadpicture', function (req, res) {
if (!req.user) { if (!req.user) {
return res.json(403, { return res.json(403, {
@ -257,121 +255,115 @@ var fs = require('fs'),
next(); next();
} }
app.get('/api/user/:userslug/following', isAllowed, function (req, res, next) { app.get('/api/user/:userslug/following', isAllowed, getUserFollowing);
var callerUID = req.user ? req.user.uid : '0'; app.get('/api/user/:userslug/followers', isAllowed, getUserFollowers);
app.get('/api/user/:userslug/edit', isAllowed, getUserEdit);
app.get('/api/user/:userslug/settings', isAllowed, getUserSettings);
app.get('/api/user/:userslug/favourites', isAllowed, getUserFavourites);
app.get('/api/user/:userslug/posts', isAllowed, getUserPosts);
app.get('/api/user/uid/:uid', isAllowed, getUserData);
app.get('/api/user/:userslug', isAllowed, getUserProfile);
app.get('/api/users', isAllowed, getOnlineUsers);
app.get('/api/users/sort-posts', isAllowed, getUsersSortedByPosts);
app.get('/api/users/sort-reputation', isAllowed, getUsersSortedByReputation);
app.get('/api/users/latest', isAllowed, getUsersSortedByJoinDate);
app.get('/api/users/online', isAllowed, getOnlineUsers);
app.get('/api/users/search', isAllowed, getUsersForSearch);
getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) {
if(err) {
return next(err);
}
if (userData) { function getUserProfile(req, res, next) {
user.getFollowing(userData.uid, function (err, followingData) { var callerUID = req.user ? parseInt(req.user.uid, 10) : 0;
getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) {
if(err) { if(err) {
return next(err); return next(err);
} }
userData.following = followingData;
userData.followingCount = followingData.length;
res.json(userData);
});
} else { if(!userData) {
res.json(404, { return res.json(404, {
error: 'User not found!' error: 'User not found!'
}); });
} }
});
});
app.get('/api/user/:userslug/followers', isAllowed, function (req, res, next) { user.isFollowing(callerUID, userData.theirid, function (isFollowing) {
var callerUID = req.user ? req.user.uid : '0';
getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) { posts.getPostsByUid(callerUID, userData.theirid, 0, 9, function (err, userPosts) {
if(err) {
return next(err);
}
if (userData) {
user.getFollowers(userData.uid, function (err, followersData) {
if(err) { if(err) {
return next(err); return next(err);
} }
userData.followers = followersData;
userData.followersCount = followersData.length; userData.posts = userPosts.posts.filter(function (p) {
res.json(userData); return p && parseInt(p.deleted, 10) !== 1;
});
} else {
res.json(404, {
error: 'User not found!'
});
}
});
}); });
app.get('/api/user/:userslug/edit', function (req, res, next) { userData.isFollowing = isFollowing;
var callerUID = req.user ? req.user.uid : '0';
if(!parseInt(callerUID, 10)) { if (!userData.profileviews) {
return res.json(403, { userData.profileviews = 1;
error: 'Not allowed!'
});
} }
getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) { if (callerUID !== parseInt(userData.uid, 10) && callerUID) {
if(err) { user.incrementUserFieldBy(userData.uid, 'profileviews', 1);
return next(err);
} }
postTools.parse(userData.signature, function (err, signature) {
userData.signature = signature;
res.json(userData); res.json(userData);
}); });
}); });
});
app.get('/api/user/:userslug/settings', function(req, res, next) { });
var callerUID = req.user ? req.user.uid : '0'; }
user.getUidByUserslug(req.params.userslug, function(err, uid) { function getUserData(req, res, next) {
if (err) { var uid = req.params.uid ? req.params.uid : 0;
return next(err);
user.getUserData(uid, function(err, userData) {
res.json(userData);
});
} }
function getUserPosts(req, res, next) {
var callerUID = req.user ? parseInt(req.user.uid, 10) : 0;
user.getUidByUserslug(req.params.userslug, function (err, uid) {
if (!uid) { if (!uid) {
return res.json(404, { return res.json(404, {
error: 'User not found!' error: 'User not found!'
}); });
} }
if (uid != callerUID || callerUID == '0') { user.getUserFields(uid, ['username', 'userslug'], function (err, userData) {
return res.json(403, {
error: 'Not allowed!'
});
}
plugins.fireHook('filter:user.settings', [], function(err, settings) {
if (err) {
return next(err);
}
user.getUserFields(uid, ['username', 'userslug'], function(err, userData) {
if (err) { if (err) {
return next(err); return next(err);
} }
if(!userData) { if (!userData) {
return res.json(404, { return res.json(404, {
error: 'User not found!' error: 'User not found!'
}); });
} }
userData.yourid = req.user.uid;
posts.getPostsByUid(callerUID, uid, 0, 19, function (err, userPosts) {
if (err) {
return next(err);
}
userData.uid = uid;
userData.theirid = uid; userData.theirid = uid;
userData.settings = settings; userData.yourid = callerUID;
userData.posts = userPosts.posts;
userData.nextStart = userPosts.nextStart;
res.json(userData); res.json(userData);
}); });
}); });
});
}); });
}
app.get('/api/user/:userslug/favourites', isAllowed, function (req, res, next) { function getUserFavourites(req, res, next) {
var callerUID = req.user ? req.user.uid : '0'; var callerUID = req.user ? parseInt(req.user.uid, 10) : 0;
user.getUidByUserslug(req.params.userslug, function (err, uid) { user.getUidByUserslug(req.params.userslug, function (err, uid) {
if (!uid) { if (!uid) {
@ -380,7 +372,7 @@ var fs = require('fs'),
}); });
} }
if (uid != callerUID || callerUID == '0') { if (parseInt(uid, 10) !== callerUID) {
return res.json(403, { return res.json(403, {
error: 'Not allowed!' error: 'Not allowed!'
}); });
@ -411,106 +403,115 @@ var fs = require('fs'),
}); });
}); });
}); });
}); }
app.get('/api/user/:userslug/posts', isAllowed, function (req, res, next) { function getUserSettings(req, res, next) {
var callerUID = req.user ? req.user.uid : '0'; var callerUID = req.user ? parseInt(req.user.uid, 10) : 0;
user.getUidByUserslug(req.params.userslug, function(err, uid) {
if (err) {
return next(err);
}
user.getUidByUserslug(req.params.userslug, function (err, uid) {
if (!uid) { if (!uid) {
return res.json(404, { return res.json(404, {
error: 'User not found!' error: 'User not found!'
}); });
} }
user.getUserFields(uid, ['username', 'userslug'], function (err, userData) { if (parseInt(uid, 10) !== callerUID) {
return res.json(403, {
error: 'Not allowed!'
});
}
plugins.fireHook('filter:user.settings', [], function(err, settings) {
if (err) { if (err) {
return next(err); return next(err);
} }
if (!userData) { user.getUserFields(uid, ['username', 'userslug'], function(err, userData) {
if (err) {
return next(err);
}
if(!userData) {
return res.json(404, { return res.json(404, {
error: 'User not found!' error: 'User not found!'
}); });
} }
userData.yourid = req.user.uid;
posts.getPostsByUid(callerUID, uid, 0, 19, function (err, userPosts) {
if (err) {
return next(err);
}
userData.uid = uid;
userData.theirid = uid; userData.theirid = uid;
userData.yourid = callerUID; userData.settings = settings;
userData.posts = userPosts.posts;
userData.nextStart = userPosts.nextStart;
res.json(userData); res.json(userData);
}); });
}); });
});
});
app.get('/api/user/uid/:uid', isAllowed, function(req, res, next) {
var uid = req.params.uid ? req.params.uid : 0;
user.getUserData(uid, function(err, userData) {
res.json(userData);
});
}); });
}
app.get('/api/user/:userslug', isAllowed, function (req, res, next) { function getUserEdit(req, res, next) {
var callerUID = req.user ? req.user.uid : '0'; var callerUID = req.user ? parseInt(req.user.uid, 10) : 0;
getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) { getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) {
if(err) { if(err) {
return next(err); return next(err);
} }
res.json(userData);
if(!userData) {
return res.json(404, {
error: 'User not found!'
}); });
} }
user.isFollowing(callerUID, userData.theirid, function (isFollowing) { function getUserFollowers(req, res, next) {
var callerUID = req.user ? parseInt(req.user.uid, 10) : 0;
posts.getPostsByUid(callerUID, userData.theirid, 0, 9, function (err, userPosts) {
getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) {
if(err) { if(err) {
return next(err); return next(err);
} }
userData.posts = userPosts.posts.filter(function (p) { if (userData) {
return p && parseInt(p.deleted, 10) !== 1; user.getFollowers(userData.uid, function (err, followersData) {
if(err) {
return next(err);
}
userData.followers = followersData;
userData.followersCount = followersData.length;
res.json(userData);
});
} else {
res.json(404, {
error: 'User not found!'
});
}
}); });
}
userData.isFollowing = isFollowing; function getUserFollowing(req, res, next) {
var callerUID = req.user ? parseInt(req.user.uid, 10) : 0;
if (!userData.profileviews) { getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) {
userData.profileviews = 1; if(err) {
return next(err);
} }
if (parseInt(callerUID, 10) !== parseInt(userData.uid, 10) && parseInt(callerUID, 0)) { if (userData) {
user.incrementUserFieldBy(userData.uid, 'profileviews', 1); user.getFollowing(userData.uid, function (err, followingData) {
if(err) {
return next(err);
} }
userData.following = followingData;
postTools.parse(userData.signature, function (err, signature) { userData.followingCount = followingData.length;
userData.signature = signature;
res.json(userData); res.json(userData);
}); });
});
});
} else {
res.json(404, {
error: 'User not found!'
}); });
}
}); });
}
app.get('/api/users', isAllowed, getOnlineUsers);
app.get('/api/users/sort-posts', isAllowed, getUsersSortedByPosts);
app.get('/api/users/sort-reputation', isAllowed, getUsersSortedByReputation);
app.get('/api/users/latest', isAllowed, getUsersSortedByJoinDate);
app.get('/api/users/online', isAllowed, getOnlineUsers);
app.get('/api/users/search', isAllowed, getUsersForSearch);
function getUsersSortedByJoinDate(req, res) { function getUsersSortedByJoinDate(req, res) {
@ -649,14 +650,14 @@ var fs = require('fs'),
} }
function canSeeEmail() { function canSeeEmail() {
return isAdmin || callerUID == userData.uid || (userData.email && userSettings.showemail); return isAdmin || parseInt(callerUID, 10) === parseInt(userData.uid, 10) || (userData.email && userSettings.showemail);
} }
if (!canSeeEmail()) { if (!canSeeEmail()) {
userData.email = ""; userData.email = "";
} }
if (callerUID == userData.uid && !userSettings.showemail) { if (parseInt(callerUID, 10) === parseInt(userData.uid, 10) && !userSettings.showemail) {
userData.emailClass = ""; userData.emailClass = "";
} else { } else {
userData.emailClass = "hide"; userData.emailClass = "hide";

Loading…
Cancel
Save