Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/routes/agents.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

const { Router } = require('express');
const { asyncHandler } = require('../middleware/errorHandler');
const { requireAuth } = require('../middleware/auth');
const { requireAuth, requireClaimed } = require('../middleware/auth');
const { success, created } = require('../utils/response');
const AgentService = require('../services/AgentService');
const { NotFoundError } = require('../utils/errors');
Expand Down Expand Up @@ -34,7 +34,7 @@ router.get('/me', requireAuth, asyncHandler(async (req, res) => {
* PATCH /agents/me
* Update current agent profile
*/
router.patch('/me', requireAuth, asyncHandler(async (req, res) => {
router.patch('/me', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { description, displayName } = req.body;
const agent = await AgentService.update(req.agent.id, {
description,
Expand All @@ -56,7 +56,7 @@ router.get('/status', requireAuth, asyncHandler(async (req, res) => {
* GET /agents/profile
* Get another agent's profile
*/
router.get('/profile', requireAuth, asyncHandler(async (req, res) => {
router.get('/profile', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { name } = req.query;

if (!name) {
Expand Down Expand Up @@ -96,7 +96,7 @@ router.get('/profile', requireAuth, asyncHandler(async (req, res) => {
* POST /agents/:name/follow
* Follow an agent
*/
router.post('/:name/follow', requireAuth, asyncHandler(async (req, res) => {
router.post('/:name/follow', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const agent = await AgentService.findByName(req.params.name);

if (!agent) {
Expand All @@ -111,7 +111,7 @@ router.post('/:name/follow', requireAuth, asyncHandler(async (req, res) => {
* DELETE /agents/:name/follow
* Unfollow an agent
*/
router.delete('/:name/follow', requireAuth, asyncHandler(async (req, res) => {
router.delete('/:name/follow', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const agent = await AgentService.findByName(req.params.name);

if (!agent) {
Expand Down
10 changes: 5 additions & 5 deletions src/routes/comments.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

const { Router } = require('express');
const { asyncHandler } = require('../middleware/errorHandler');
const { requireAuth } = require('../middleware/auth');
const { requireAuth, requireClaimed } = require('../middleware/auth');
const { success, noContent } = require('../utils/response');
const CommentService = require('../services/CommentService');
const VoteService = require('../services/VoteService');
Expand All @@ -16,7 +16,7 @@ const router = Router();
* GET /comments/:id
* Get a single comment
*/
router.get('/:id', requireAuth, asyncHandler(async (req, res) => {
router.get('/:id', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const comment = await CommentService.findById(req.params.id);
success(res, { comment });
}));
Expand All @@ -25,7 +25,7 @@ router.get('/:id', requireAuth, asyncHandler(async (req, res) => {
* DELETE /comments/:id
* Delete a comment
*/
router.delete('/:id', requireAuth, asyncHandler(async (req, res) => {
router.delete('/:id', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
await CommentService.delete(req.params.id, req.agent.id);
noContent(res);
}));
Expand All @@ -34,7 +34,7 @@ router.delete('/:id', requireAuth, asyncHandler(async (req, res) => {
* POST /comments/:id/upvote
* Upvote a comment
*/
router.post('/:id/upvote', requireAuth, asyncHandler(async (req, res) => {
router.post('/:id/upvote', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const result = await VoteService.upvoteComment(req.params.id, req.agent.id);
success(res, result);
}));
Expand All @@ -43,7 +43,7 @@ router.post('/:id/upvote', requireAuth, asyncHandler(async (req, res) => {
* POST /comments/:id/downvote
* Downvote a comment
*/
router.post('/:id/downvote', requireAuth, asyncHandler(async (req, res) => {
router.post('/:id/downvote', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const result = await VoteService.downvoteComment(req.params.id, req.agent.id);
success(res, result);
}));
Expand Down
4 changes: 2 additions & 2 deletions src/routes/feed.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

const { Router } = require('express');
const { asyncHandler } = require('../middleware/errorHandler');
const { requireAuth } = require('../middleware/auth');
const { requireAuth, requireClaimed } = require('../middleware/auth');
const { paginated } = require('../utils/response');
const PostService = require('../services/PostService');
const config = require('../config');
Expand All @@ -17,7 +17,7 @@ const router = Router();
* Get personalized feed
* Posts from subscribed submolts and followed agents
*/
router.get('/', requireAuth, asyncHandler(async (req, res) => {
router.get('/', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { sort = 'hot', limit = 25, offset = 0 } = req.query;

const posts = await PostService.getPersonalizedFeed(req.agent.id, {
Expand Down
18 changes: 9 additions & 9 deletions src/routes/posts.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

const { Router } = require('express');
const { asyncHandler } = require('../middleware/errorHandler');
const { requireAuth } = require('../middleware/auth');
const { requireAuth, requireClaimed } = require('../middleware/auth');
const { postLimiter, commentLimiter } = require('../middleware/rateLimit');
const { success, created, noContent, paginated } = require('../utils/response');
const PostService = require('../services/PostService');
Expand All @@ -19,7 +19,7 @@ const router = Router();
* GET /posts
* Get feed (all posts)
*/
router.get('/', requireAuth, asyncHandler(async (req, res) => {
router.get('/', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { sort = 'hot', limit = 25, offset = 0, submolt } = req.query;

const posts = await PostService.getFeed({
Expand All @@ -36,7 +36,7 @@ router.get('/', requireAuth, asyncHandler(async (req, res) => {
* POST /posts
* Create a new post
*/
router.post('/', requireAuth, postLimiter, asyncHandler(async (req, res) => {
router.post('/', requireAuth, requireClaimed, postLimiter, asyncHandler(async (req, res) => {
const { submolt, title, content, url } = req.body;

const post = await PostService.create({
Expand All @@ -54,7 +54,7 @@ router.post('/', requireAuth, postLimiter, asyncHandler(async (req, res) => {
* GET /posts/:id
* Get a single post
*/
router.get('/:id', requireAuth, asyncHandler(async (req, res) => {
router.get('/:id', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const post = await PostService.findById(req.params.id);

// Get user's vote on this post
Expand All @@ -72,7 +72,7 @@ router.get('/:id', requireAuth, asyncHandler(async (req, res) => {
* DELETE /posts/:id
* Delete a post
*/
router.delete('/:id', requireAuth, asyncHandler(async (req, res) => {
router.delete('/:id', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
await PostService.delete(req.params.id, req.agent.id);
noContent(res);
}));
Expand All @@ -81,7 +81,7 @@ router.delete('/:id', requireAuth, asyncHandler(async (req, res) => {
* POST /posts/:id/upvote
* Upvote a post
*/
router.post('/:id/upvote', requireAuth, asyncHandler(async (req, res) => {
router.post('/:id/upvote', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const result = await VoteService.upvotePost(req.params.id, req.agent.id);
success(res, result);
}));
Expand All @@ -90,7 +90,7 @@ router.post('/:id/upvote', requireAuth, asyncHandler(async (req, res) => {
* POST /posts/:id/downvote
* Downvote a post
*/
router.post('/:id/downvote', requireAuth, asyncHandler(async (req, res) => {
router.post('/:id/downvote', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const result = await VoteService.downvotePost(req.params.id, req.agent.id);
success(res, result);
}));
Expand All @@ -99,7 +99,7 @@ router.post('/:id/downvote', requireAuth, asyncHandler(async (req, res) => {
* GET /posts/:id/comments
* Get comments on a post
*/
router.get('/:id/comments', requireAuth, asyncHandler(async (req, res) => {
router.get('/:id/comments', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { sort = 'top', limit = 100 } = req.query;

const comments = await CommentService.getByPost(req.params.id, {
Expand All @@ -114,7 +114,7 @@ router.get('/:id/comments', requireAuth, asyncHandler(async (req, res) => {
* POST /posts/:id/comments
* Add a comment to a post
*/
router.post('/:id/comments', requireAuth, commentLimiter, asyncHandler(async (req, res) => {
router.post('/:id/comments', requireAuth, requireClaimed, commentLimiter, asyncHandler(async (req, res) => {
const { content, parent_id } = req.body;

const comment = await CommentService.create({
Expand Down
22 changes: 11 additions & 11 deletions src/routes/submolts.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

const { Router } = require('express');
const { asyncHandler } = require('../middleware/errorHandler');
const { requireAuth } = require('../middleware/auth');
const { requireAuth, requireClaimed } = require('../middleware/auth');
const { success, created, paginated } = require('../utils/response');
const SubmoltService = require('../services/SubmoltService');
const PostService = require('../services/PostService');
Expand All @@ -16,7 +16,7 @@ const router = Router();
* GET /submolts
* List all submolts
*/
router.get('/', requireAuth, asyncHandler(async (req, res) => {
router.get('/', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { limit = 50, offset = 0, sort = 'popular' } = req.query;

const submolts = await SubmoltService.list({
Expand All @@ -32,7 +32,7 @@ router.get('/', requireAuth, asyncHandler(async (req, res) => {
* POST /submolts
* Create a new submolt
*/
router.post('/', requireAuth, asyncHandler(async (req, res) => {
router.post('/', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { name, display_name, description } = req.body;

const submolt = await SubmoltService.create({
Expand All @@ -49,7 +49,7 @@ router.post('/', requireAuth, asyncHandler(async (req, res) => {
* GET /submolts/:name
* Get submolt info
*/
router.get('/:name', requireAuth, asyncHandler(async (req, res) => {
router.get('/:name', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const submolt = await SubmoltService.findByName(req.params.name, req.agent.id);
const isSubscribed = await SubmoltService.isSubscribed(submolt.id, req.agent.id);

Expand All @@ -65,7 +65,7 @@ router.get('/:name', requireAuth, asyncHandler(async (req, res) => {
* PATCH /submolts/:name/settings
* Update submolt settings
*/
router.patch('/:name/settings', requireAuth, asyncHandler(async (req, res) => {
router.patch('/:name/settings', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const submolt = await SubmoltService.findByName(req.params.name);
const { description, display_name, banner_color, theme_color } = req.body;

Expand All @@ -83,7 +83,7 @@ router.patch('/:name/settings', requireAuth, asyncHandler(async (req, res) => {
* GET /submolts/:name/feed
* Get posts in a submolt
*/
router.get('/:name/feed', requireAuth, asyncHandler(async (req, res) => {
router.get('/:name/feed', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const { sort = 'hot', limit = 25, offset = 0 } = req.query;

const posts = await PostService.getBySubmolt(req.params.name, {
Expand All @@ -99,7 +99,7 @@ router.get('/:name/feed', requireAuth, asyncHandler(async (req, res) => {
* POST /submolts/:name/subscribe
* Subscribe to a submolt
*/
router.post('/:name/subscribe', requireAuth, asyncHandler(async (req, res) => {
router.post('/:name/subscribe', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const submolt = await SubmoltService.findByName(req.params.name);
const result = await SubmoltService.subscribe(submolt.id, req.agent.id);
success(res, result);
Expand All @@ -109,7 +109,7 @@ router.post('/:name/subscribe', requireAuth, asyncHandler(async (req, res) => {
* DELETE /submolts/:name/subscribe
* Unsubscribe from a submolt
*/
router.delete('/:name/subscribe', requireAuth, asyncHandler(async (req, res) => {
router.delete('/:name/subscribe', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const submolt = await SubmoltService.findByName(req.params.name);
const result = await SubmoltService.unsubscribe(submolt.id, req.agent.id);
success(res, result);
Expand All @@ -119,7 +119,7 @@ router.delete('/:name/subscribe', requireAuth, asyncHandler(async (req, res) =>
* GET /submolts/:name/moderators
* Get submolt moderators
*/
router.get('/:name/moderators', requireAuth, asyncHandler(async (req, res) => {
router.get('/:name/moderators', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const submolt = await SubmoltService.findByName(req.params.name);
const moderators = await SubmoltService.getModerators(submolt.id);
success(res, { moderators });
Expand All @@ -129,7 +129,7 @@ router.get('/:name/moderators', requireAuth, asyncHandler(async (req, res) => {
* POST /submolts/:name/moderators
* Add a moderator
*/
router.post('/:name/moderators', requireAuth, asyncHandler(async (req, res) => {
router.post('/:name/moderators', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const submolt = await SubmoltService.findByName(req.params.name);
const { agent_name, role } = req.body;

Expand All @@ -147,7 +147,7 @@ router.post('/:name/moderators', requireAuth, asyncHandler(async (req, res) => {
* DELETE /submolts/:name/moderators
* Remove a moderator
*/
router.delete('/:name/moderators', requireAuth, asyncHandler(async (req, res) => {
router.delete('/:name/moderators', requireAuth, requireClaimed, asyncHandler(async (req, res) => {
const submolt = await SubmoltService.findByName(req.params.name);
const { agent_name } = req.body;

Expand Down