Return SyncPlay group info after creation, add GET group endpoint (#13935)

This commit is contained in:
Niels van Velzen
2025-04-21 03:40:23 +02:00
committed by GitHub
parent 576f6d411a
commit 5e4bd744c0
3 changed files with 59 additions and 8 deletions

View File

@@ -100,7 +100,7 @@ namespace Emby.Server.Implementations.SyncPlay
}
/// <inheritdoc />
public void NewGroup(SessionInfo session, NewGroupRequest request, CancellationToken cancellationToken)
public GroupInfoDto NewGroup(SessionInfo session, NewGroupRequest request, CancellationToken cancellationToken)
{
if (session is null)
{
@@ -132,6 +132,7 @@ namespace Emby.Server.Implementations.SyncPlay
UpdateSessionsCounter(session.UserId, 1);
group.CreateGroup(session, request, cancellationToken);
return group.GetInfo();
}
}
@@ -288,6 +289,31 @@ namespace Emby.Server.Implementations.SyncPlay
return list;
}
/// <inheritdoc />
public GroupInfoDto GetGroup(SessionInfo session, Guid groupId)
{
ArgumentNullException.ThrowIfNull(session);
var user = _userManager.GetUserById(session.UserId);
lock (_groupsLock)
{
foreach (var (_, group) in _groups)
{
// Locking required as group is not thread-safe.
lock (group)
{
if (group.GroupId.Equals(groupId) && group.HasAccessToPlayQueue(user))
{
return group.GetInfo();
}
}
}
}
return null;
}
/// <inheritdoc />
public void HandleRequest(SessionInfo session, IGroupPlaybackRequest request, CancellationToken cancellationToken)
{