diff options
| author | Niels van Velzen <nielsvanvelzen@users.noreply.github.com> | 2025-04-21 03:40:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-20 19:40:23 -0600 |
| commit | 5e4bd744c07d44d75c8e9eb7b6dc03b7ff4f147c (patch) | |
| tree | 24bc40e5eaa7e8db080d8e2c1ddf23223f156971 /Jellyfin.Api/Controllers/SyncPlayController.cs | |
| parent | 576f6d411a5bf5c9a27aa832e9eb56556725f505 (diff) | |
Return SyncPlay group info after creation, add GET group endpoint (#13935)
Diffstat (limited to 'Jellyfin.Api/Controllers/SyncPlayController.cs')
| -rw-r--r-- | Jellyfin.Api/Controllers/SyncPlayController.cs | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/Jellyfin.Api/Controllers/SyncPlayController.cs b/Jellyfin.Api/Controllers/SyncPlayController.cs index 383978197..fbab2a784 100644 --- a/Jellyfin.Api/Controllers/SyncPlayController.cs +++ b/Jellyfin.Api/Controllers/SyncPlayController.cs @@ -1,9 +1,9 @@ +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading; using System.Threading.Tasks; -using Jellyfin.Api.Constants; using Jellyfin.Api.Helpers; using Jellyfin.Api.Models.SyncPlayDtos; using MediaBrowser.Common.Api; @@ -50,17 +50,16 @@ public class SyncPlayController : BaseJellyfinApiController /// </summary> /// <param name="requestData">The settings of the new group.</param> /// <response code="204">New group created.</response> - /// <returns>A <see cref="NoContentResult"/> indicating success.</returns> + /// <returns>An <see cref="GroupInfoDto"/> for the created group.</returns> [HttpPost("New")] - [ProducesResponseType(StatusCodes.Status204NoContent)] + [ProducesResponseType(StatusCodes.Status200OK)] [Authorize(Policy = Policies.SyncPlayCreateGroup)] - public async Task<ActionResult> SyncPlayCreateGroup( + public async Task<ActionResult<GroupInfoDto>> SyncPlayCreateGroup( [FromBody, Required] NewGroupRequestDto requestData) { var currentSession = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext).ConfigureAwait(false); var syncPlayRequest = new NewGroupRequest(requestData.GroupName); - _syncPlayManager.NewGroup(currentSession, syncPlayRequest, CancellationToken.None); - return NoContent(); + return Ok(_syncPlayManager.NewGroup(currentSession, syncPlayRequest, CancellationToken.None)); } /// <summary> @@ -113,6 +112,23 @@ public class SyncPlayController : BaseJellyfinApiController } /// <summary> + /// Gets a SyncPlay group by id. + /// </summary> + /// <param name="id">The id of the group.</param> + /// <response code="200">Group returned.</response> + /// <returns>An <see cref="GroupInfoDto"/> for the requested group.</returns> + [HttpGet("{id:guid}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status404NotFound)] + [Authorize(Policy = Policies.SyncPlayJoinGroup)] + public async Task<ActionResult<GroupInfoDto>> SyncPlayGetGroup([FromRoute] Guid id) + { + var currentSession = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext).ConfigureAwait(false); + var group = _syncPlayManager.GetGroup(currentSession, id); + return group == null ? NotFound() : Ok(group); + } + + /// <summary> /// Request to set new playlist in SyncPlay group. /// </summary> /// <param name="requestData">The new playlist to play in the group.</param> |
