A community based topic aggregation platform built on atproto

feat(communities): register blocking routes with authentication

Register community blocking XRPC endpoints:
- POST /xrpc/social.coves.community.blockCommunity (requires auth)
- POST /xrpc/social.coves.community.unblockCommunity (requires auth)

Both routes use RequireAuth middleware to ensure proper authentication
before allowing block/unblock operations.

Changed files
+7
internal
api
routes
+7
internal/api/routes/community.go
···
listHandler := community.NewListHandler(service)
searchHandler := community.NewSearchHandler(service)
subscribeHandler := community.NewSubscribeHandler(service)
// Query endpoints (GET) - public access
// social.coves.community.get - get a single community by identifier
···
// social.coves.community.unsubscribe - unsubscribe from a community
r.With(authMiddleware.RequireAuth).Post("/xrpc/social.coves.community.unsubscribe", subscribeHandler.HandleUnsubscribe)
// TODO: Add delete handler when implemented
// r.With(authMiddleware.RequireAuth).Post("/xrpc/social.coves.community.delete", deleteHandler.HandleDelete)
···
listHandler := community.NewListHandler(service)
searchHandler := community.NewSearchHandler(service)
subscribeHandler := community.NewSubscribeHandler(service)
+
blockHandler := community.NewBlockHandler(service)
// Query endpoints (GET) - public access
// social.coves.community.get - get a single community by identifier
···
// social.coves.community.unsubscribe - unsubscribe from a community
r.With(authMiddleware.RequireAuth).Post("/xrpc/social.coves.community.unsubscribe", subscribeHandler.HandleUnsubscribe)
+
+
// social.coves.community.blockCommunity - block a community
+
r.With(authMiddleware.RequireAuth).Post("/xrpc/social.coves.community.blockCommunity", blockHandler.HandleBlock)
+
+
// social.coves.community.unblockCommunity - unblock a community
+
r.With(authMiddleware.RequireAuth).Post("/xrpc/social.coves.community.unblockCommunity", blockHandler.HandleUnblock)
// TODO: Add delete handler when implemented
// r.With(authMiddleware.RequireAuth).Post("/xrpc/social.coves.community.delete", deleteHandler.HandleDelete)