Skip to content

feat: playlist follow, one-song reorder, and comment moderation - #579

Merged
Akatenvictor merged 2 commits into
AudioBitsStellar:mainfrom
matteorossi-codes:feat/stellar-drips-wave-408-409-410-411
Aug 31, 2026
Merged

feat: playlist follow, one-song reorder, and comment moderation#579
Akatenvictor merged 2 commits into
AudioBitsStellar:mainfrom
matteorossi-codes:feat/stellar-drips-wave-408-409-410-411

Conversation

@matteorossi-codes

Copy link
Copy Markdown

Summary

Playlist and comment moderation enhancements for AudioBlock:

  1. Add a playlist song-reordering endpoint #409 — Added an explicit, efficient song-reorder endpoint: PATCH /api/playlists/:id/songs/:songId/position moves a single song to a new position without requiring the caller to resend the full playlist. Positions stay compacted and stable. Covered by tests.

  2. Add playlist follow/subscribe for listeners #408 — Added playlist follow/subscribe for listeners, mirroring the UserFollow relationship. Includes POST /api/playlists/:id/follow, DELETE /api/playlists/:id/follow, GET /api/playlists/followed, follower counts, a PlaylistFollow entity + migration, and tests.

  3. Integrate comment flagging directly into the moderation queue #411 — Wired comment flagging directly into the moderation queue. POST /api/comments/:id/report creates a CommentReport that surfaces with full comment context in the moderation flow (GET /api/admin/comment-reports, PUT /api/admin/comment-reports/:id/resolve). A unique (commentId, reporterId) constraint prevents duplicate reports. Flagged/removed comments are hidden from public listings. Covered by tests.

  4. Add threaded replies to comments #410 — Threaded replies were already implemented in the codebase (self-referential parentId, depth limit, and GET /api/comments/:id/replies); no additional changes were needed.

Closes #408
Closes #409
Closes #410
Closes #411

Add comment flagging so reported comments surface in the existing
moderation review flow with full comment context. A CommentReport entity
tracks reports with a unique (commentId, reporterId) constraint preventing
duplicate entries for the same comment and reporter. Flagged comments are
hidden from public listings once a moderator resolves the report.

Closes AudioBitsStellar#411
Add playlist follow/subscribe for listeners (mirroring the UserFollow
relationship) with follow/unfollow endpoints, a followed-playlists listing
endpoint, and follower counts. Includes a PlaylistFollow entity, migration,
and tests.

Add an explicit, efficient reorder endpoint that moves a single song to a
new position (PATCH /:id/songs/:songId/position) without requiring the
caller to resend the full playlist, keeping positions stable and compacted.
Includes tests.

Closes AudioBitsStellar#408
Closes AudioBitsStellar#409
@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@matteorossi-codes Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Akatenvictor
Akatenvictor merged commit 9b184e4 into AudioBitsStellar:main Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants