From ba093e7fd51dada40685020d97e3092b0dbf1e4e Mon Sep 17 00:00:00 2001 From: XShine555 Date: Mon, 1 Jun 2026 01:20:18 +0200 Subject: [PATCH] Add playlist endpoints to add and remove tracks --- WebApi/Endpoints/PlayListEndpoints.cs | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/WebApi/Endpoints/PlayListEndpoints.cs b/WebApi/Endpoints/PlayListEndpoints.cs index 36ca9d9..b1fc110 100644 --- a/WebApi/Endpoints/PlayListEndpoints.cs +++ b/WebApi/Endpoints/PlayListEndpoints.cs @@ -50,6 +50,16 @@ public static class PlayListEndpoints .AddEndpointFilter>() .RequireAuthorization(); + group.MapPost("/{playlistId}/tracks/{trackId}", AddTrackToPlayList) + .WithName("AddTrackToPlayList") + .WithSummary("Add A Track To A PlayList.") + .RequireAuthorization(); + + group.MapDelete("/{playlistId}/tracks/{trackId}", RemoveTrackFromPlayList) + .WithName("RemoveTrackFromPlayList") + .WithSummary("Remove A Track From A PlayList.") + .RequireAuthorization(); + return app; } @@ -136,4 +146,32 @@ public static class PlayListEndpoints return result.ToHttpResult(); } + + private static async Task AddTrackToPlayList( + IMediator mediator, + CurrentUser currentUser, + Guid playlistId, + Guid trackId, + CancellationToken cancellationToken) + { + var result = await mediator.Send( + new AddTrackToPlayListCommand(currentUser.RequiredId, playlistId, trackId), + cancellationToken); + + return result.ToHttpResult(); + } + + private static async Task RemoveTrackFromPlayList( + IMediator mediator, + CurrentUser currentUser, + Guid playlistId, + Guid trackId, + CancellationToken cancellationToken) + { + var result = await mediator.Send( + new RemoveTrackFromPlayListCommand(currentUser.RequiredId, playlistId, trackId), + cancellationToken); + + return result.ToHttpResult(); + } }