浏览代码

Apply suggestions from review

crobibero 4 年之前
父节点
当前提交
09b1e571f4
共有 1 个文件被更改,包括 12 次插入28 次删除
  1. 12 28
      Jellyfin.Api/Controllers/FilterController.cs

+ 12 - 28
Jellyfin.Api/Controllers/FilterController.cs

@@ -54,35 +54,18 @@ namespace Jellyfin.Api.Controllers
             [FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] includeItemTypes,
             [FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] mediaTypes)
         {
-            var parentItem = parentId.HasValue
-                ? _libraryManager.GetItemById(parentId.Value)
-                : null;
-
             var user = userId.HasValue && !userId.Equals(Guid.Empty)
                 ? _userManager.GetUserById(userId.Value)
                 : null;
 
-            if (includeItemTypes.Length == 1
-                && (string.Equals(includeItemTypes[0], nameof(BoxSet), StringComparison.OrdinalIgnoreCase)
-                    || string.Equals(includeItemTypes[0], nameof(Playlist), StringComparison.OrdinalIgnoreCase)
-                    || string.Equals(includeItemTypes[0], nameof(Trailer), StringComparison.OrdinalIgnoreCase)
-                    || string.Equals(includeItemTypes[0], "Program", StringComparison.OrdinalIgnoreCase)))
-            {
-                parentItem = null;
-            }
-
-            BaseItem? item;
-            if (parentId.HasValue)
-            {
-                item = parentItem;
-            }
-            else if (user == null)
-            {
-                item = _libraryManager.RootFolder;
-            }
-            else
+            BaseItem? item = null;
+            if (includeItemTypes.Length != 1
+                || !(string.Equals(includeItemTypes[0], nameof(BoxSet), StringComparison.OrdinalIgnoreCase)
+                     || string.Equals(includeItemTypes[0], nameof(Playlist), StringComparison.OrdinalIgnoreCase)
+                     || string.Equals(includeItemTypes[0], nameof(Trailer), StringComparison.OrdinalIgnoreCase)
+                     || string.Equals(includeItemTypes[0], "Program", StringComparison.OrdinalIgnoreCase)))
             {
-                item = _libraryManager.GetUserRootFolder();
+                item = _libraryManager.GetParentItem(parentId, user?.Id);
             }
 
             var query = new InternalItemsQuery
@@ -158,14 +141,11 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] bool? isSeries,
             [FromQuery] bool? recursive)
         {
-            var parentItem = parentId.HasValue
-                ? _libraryManager.GetItemById(parentId.Value)
-                : null;
-
             var user = userId.HasValue && !userId.Equals(Guid.Empty)
                 ? _userManager.GetUserById(userId.Value)
                 : null;
 
+            BaseItem? parentItem = null;
             if (includeItemTypes.Length == 1
                 && (string.Equals(includeItemTypes[0], nameof(BoxSet), StringComparison.OrdinalIgnoreCase)
                     || string.Equals(includeItemTypes[0], nameof(Playlist), StringComparison.OrdinalIgnoreCase)
@@ -174,6 +154,10 @@ namespace Jellyfin.Api.Controllers
             {
                 parentItem = null;
             }
+            else if (parentId.HasValue)
+            {
+                parentItem = _libraryManager.GetItemById(parentId.Value);
+            }
 
             var filters = new QueryFilters();
             var genreQuery = new InternalItemsQuery(user)