Use Guid for adjacentTo API parameter

This commit is contained in:
Niels van Velzen
2022-08-14 12:47:25 +02:00
parent c7edf8b565
commit 0f91244239
6 changed files with 16 additions and 17 deletions

View File

@@ -860,7 +860,7 @@ namespace MediaBrowser.Controller.Entities
return true;
}
if (!string.IsNullOrEmpty(query.AdjacentTo))
if (query.AdjacentTo.HasValue)
{
Logger.LogDebug("Query requires post-filtering due to AdjacentTo");
return true;
@@ -1029,9 +1029,9 @@ namespace MediaBrowser.Controller.Entities
#pragma warning restore CA1309
// This must be the last filter
if (!string.IsNullOrEmpty(query.AdjacentTo))
if (query.AdjacentTo.HasValue)
{
items = UserViewBuilder.FilterForAdjacency(items.ToList(), query.AdjacentTo);
items = UserViewBuilder.FilterForAdjacency(items.ToList(), query.AdjacentTo.Value);
}
return UserViewBuilder.SortAndPage(items, null, query, LibraryManager, enableSorting);

View File

@@ -129,7 +129,7 @@ namespace MediaBrowser.Controller.Entities
public Guid[] ExcludeItemIds { get; set; }
public string? AdjacentTo { get; set; }
public Guid? AdjacentTo { get; set; }
public string[] PersonTypes { get; set; }

View File

@@ -433,9 +433,9 @@ namespace MediaBrowser.Controller.Entities
var user = query.User;
// This must be the last filter
if (!string.IsNullOrEmpty(query.AdjacentTo))
if (query.AdjacentTo.HasValue)
{
items = FilterForAdjacency(items.ToList(), query.AdjacentTo);
items = FilterForAdjacency(items.ToList(), query.AdjacentTo.Value);
}
return SortAndPage(items, totalRecordLimit, query, libraryManager, true);
@@ -985,10 +985,9 @@ namespace MediaBrowser.Controller.Entities
return _userViewManager.GetUserSubView(parent.Id, type, localizationKey, sortName);
}
public static IEnumerable<BaseItem> FilterForAdjacency(List<BaseItem> list, string adjacentToId)
public static IEnumerable<BaseItem> FilterForAdjacency(List<BaseItem> list, Guid adjacentTo)
{
var adjacentToIdGuid = new Guid(adjacentToId);
var adjacentToItem = list.FirstOrDefault(i => i.Id.Equals(adjacentToIdGuid));
var adjacentToItem = list.FirstOrDefault(i => i.Id.Equals(adjacentTo));
var index = list.IndexOf(adjacentToItem);
@@ -1005,7 +1004,7 @@ namespace MediaBrowser.Controller.Entities
nextId = list[index + 1].Id;
}
return list.Where(i => i.Id.Equals(previousId) || i.Id.Equals(nextId) || i.Id.Equals(adjacentToIdGuid));
return list.Where(i => i.Id.Equals(previousId) || i.Id.Equals(nextId) || i.Id.Equals(adjacentTo));
}
}
}