mirror of https://github.com/jellyfin/jellyfin.git
Always make userId query parameter optional
This commit is contained in:
parent
4d93f06732
commit
5b93aec2f5
|
@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Jellyfin.Api.Helpers;
|
||||||
using Jellyfin.Data.Entities;
|
using Jellyfin.Data.Entities;
|
||||||
using Jellyfin.Data.Enums;
|
using Jellyfin.Data.Enums;
|
||||||
using MediaBrowser.Common.Extensions;
|
using MediaBrowser.Common.Extensions;
|
||||||
|
@ -48,15 +49,17 @@ public class DisplayPreferencesController : BaseJellyfinApiController
|
||||||
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "displayPreferencesId", Justification = "Imported from ServiceStack")]
|
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "displayPreferencesId", Justification = "Imported from ServiceStack")]
|
||||||
public ActionResult<DisplayPreferencesDto> GetDisplayPreferences(
|
public ActionResult<DisplayPreferencesDto> GetDisplayPreferences(
|
||||||
[FromRoute, Required] string displayPreferencesId,
|
[FromRoute, Required] string displayPreferencesId,
|
||||||
[FromQuery, Required] Guid userId,
|
[FromQuery] Guid? userId,
|
||||||
[FromQuery, Required] string client)
|
[FromQuery, Required] string client)
|
||||||
{
|
{
|
||||||
|
userId = RequestHelpers.GetUserId(User, userId);
|
||||||
|
|
||||||
if (!Guid.TryParse(displayPreferencesId, out var itemId))
|
if (!Guid.TryParse(displayPreferencesId, out var itemId))
|
||||||
{
|
{
|
||||||
itemId = displayPreferencesId.GetMD5();
|
itemId = displayPreferencesId.GetMD5();
|
||||||
}
|
}
|
||||||
|
|
||||||
var displayPreferences = _displayPreferencesManager.GetDisplayPreferences(userId, itemId, client);
|
var displayPreferences = _displayPreferencesManager.GetDisplayPreferences(userId.Value, itemId, client);
|
||||||
var itemPreferences = _displayPreferencesManager.GetItemDisplayPreferences(displayPreferences.UserId, itemId, displayPreferences.Client);
|
var itemPreferences = _displayPreferencesManager.GetItemDisplayPreferences(displayPreferences.UserId, itemId, displayPreferences.Client);
|
||||||
itemPreferences.ItemId = itemId;
|
itemPreferences.ItemId = itemId;
|
||||||
|
|
||||||
|
@ -113,10 +116,12 @@ public class DisplayPreferencesController : BaseJellyfinApiController
|
||||||
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "displayPreferencesId", Justification = "Imported from ServiceStack")]
|
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "displayPreferencesId", Justification = "Imported from ServiceStack")]
|
||||||
public ActionResult UpdateDisplayPreferences(
|
public ActionResult UpdateDisplayPreferences(
|
||||||
[FromRoute, Required] string displayPreferencesId,
|
[FromRoute, Required] string displayPreferencesId,
|
||||||
[FromQuery, Required] Guid userId,
|
[FromQuery] Guid? userId,
|
||||||
[FromQuery, Required] string client,
|
[FromQuery, Required] string client,
|
||||||
[FromBody, Required] DisplayPreferencesDto displayPreferences)
|
[FromBody, Required] DisplayPreferencesDto displayPreferences)
|
||||||
{
|
{
|
||||||
|
userId = RequestHelpers.GetUserId(User, userId);
|
||||||
|
|
||||||
HomeSectionType[] defaults =
|
HomeSectionType[] defaults =
|
||||||
{
|
{
|
||||||
HomeSectionType.SmallLibraryTiles,
|
HomeSectionType.SmallLibraryTiles,
|
||||||
|
@ -134,7 +139,7 @@ public class DisplayPreferencesController : BaseJellyfinApiController
|
||||||
itemId = displayPreferencesId.GetMD5();
|
itemId = displayPreferencesId.GetMD5();
|
||||||
}
|
}
|
||||||
|
|
||||||
var existingDisplayPreferences = _displayPreferencesManager.GetDisplayPreferences(userId, itemId, client);
|
var existingDisplayPreferences = _displayPreferencesManager.GetDisplayPreferences(userId.Value, itemId, client);
|
||||||
existingDisplayPreferences.IndexBy = Enum.TryParse<IndexingKind>(displayPreferences.IndexBy, true, out var indexBy) ? indexBy : null;
|
existingDisplayPreferences.IndexBy = Enum.TryParse<IndexingKind>(displayPreferences.IndexBy, true, out var indexBy) ? indexBy : null;
|
||||||
existingDisplayPreferences.ShowBackdrop = displayPreferences.ShowBackdrop;
|
existingDisplayPreferences.ShowBackdrop = displayPreferences.ShowBackdrop;
|
||||||
existingDisplayPreferences.ShowSidebar = displayPreferences.ShowSidebar;
|
existingDisplayPreferences.ShowSidebar = displayPreferences.ShowSidebar;
|
||||||
|
@ -204,7 +209,7 @@ public class DisplayPreferencesController : BaseJellyfinApiController
|
||||||
itemPrefs.ItemId = itemId;
|
itemPrefs.ItemId = itemId;
|
||||||
|
|
||||||
// Set all remaining custom preferences.
|
// Set all remaining custom preferences.
|
||||||
_displayPreferencesManager.SetCustomItemDisplayPreferences(userId, itemId, existingDisplayPreferences.Client, displayPreferences.CustomPrefs);
|
_displayPreferencesManager.SetCustomItemDisplayPreferences(userId.Value, itemId, existingDisplayPreferences.Client, displayPreferences.CustomPrefs);
|
||||||
_displayPreferencesManager.SaveChanges();
|
_displayPreferencesManager.SaveChanges();
|
||||||
|
|
||||||
return NoContent();
|
return NoContent();
|
||||||
|
|
|
@ -64,8 +64,9 @@ public class MediaInfoController : BaseJellyfinApiController
|
||||||
/// <returns>A <see cref="Task"/> containing a <see cref="PlaybackInfoResponse"/> with the playback information.</returns>
|
/// <returns>A <see cref="Task"/> containing a <see cref="PlaybackInfoResponse"/> with the playback information.</returns>
|
||||||
[HttpGet("Items/{itemId}/PlaybackInfo")]
|
[HttpGet("Items/{itemId}/PlaybackInfo")]
|
||||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
public async Task<ActionResult<PlaybackInfoResponse>> GetPlaybackInfo([FromRoute, Required] Guid itemId, [FromQuery, Required] Guid userId)
|
public async Task<ActionResult<PlaybackInfoResponse>> GetPlaybackInfo([FromRoute, Required] Guid itemId, [FromQuery] Guid? userId)
|
||||||
{
|
{
|
||||||
|
userId = RequestHelpers.GetUserId(User, userId);
|
||||||
return await _mediaInfoHelper.GetPlaybackInfo(
|
return await _mediaInfoHelper.GetPlaybackInfo(
|
||||||
itemId,
|
itemId,
|
||||||
userId)
|
userId)
|
||||||
|
|
|
@ -174,7 +174,7 @@ public class PlaylistsController : BaseJellyfinApiController
|
||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
public ActionResult<QueryResult<BaseItemDto>> GetPlaylistItems(
|
public ActionResult<QueryResult<BaseItemDto>> GetPlaylistItems(
|
||||||
[FromRoute, Required] Guid playlistId,
|
[FromRoute, Required] Guid playlistId,
|
||||||
[FromQuery, Required] Guid userId,
|
[FromQuery] Guid? userId,
|
||||||
[FromQuery] int? startIndex,
|
[FromQuery] int? startIndex,
|
||||||
[FromQuery] int? limit,
|
[FromQuery] int? limit,
|
||||||
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFields[] fields,
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFields[] fields,
|
||||||
|
@ -183,15 +183,16 @@ public class PlaylistsController : BaseJellyfinApiController
|
||||||
[FromQuery] int? imageTypeLimit,
|
[FromQuery] int? imageTypeLimit,
|
||||||
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ImageType[] enableImageTypes)
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ImageType[] enableImageTypes)
|
||||||
{
|
{
|
||||||
|
userId = RequestHelpers.GetUserId(User, userId);
|
||||||
var playlist = (Playlist)_libraryManager.GetItemById(playlistId);
|
var playlist = (Playlist)_libraryManager.GetItemById(playlistId);
|
||||||
if (playlist is null)
|
if (playlist is null)
|
||||||
{
|
{
|
||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
var user = userId.IsEmpty()
|
var user = userId.IsNullOrEmpty()
|
||||||
? null
|
? null
|
||||||
: _userManager.GetUserById(userId);
|
: _userManager.GetUserById(userId.Value);
|
||||||
|
|
||||||
var items = playlist.GetManageableItems().ToArray();
|
var items = playlist.GetManageableItems().ToArray();
|
||||||
var count = items.Length;
|
var count = items.Length;
|
||||||
|
|
Loading…
Reference in New Issue