From 0a1ae62559e67b102dcb544d766366ef2d0c7139 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 22 Jan 2014 12:05:23 -0500 Subject: [PATCH] made user id optional on item queries --- MediaBrowser.Api/UserLibrary/ItemsService.cs | 23 ++++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 278821f52b..16243ba6bb 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -20,6 +20,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// Class GetItems /// + [Route("/Items", "GET")] [Route("/Users/{UserId}/Items", "GET")] [Api(Description = "Gets items based on a query.")] public class GetItems : BaseItemsRequest, IReturn @@ -28,8 +29,8 @@ namespace MediaBrowser.Api.UserLibrary /// Gets or sets the user id. /// /// The user id. - [ApiMember(Name = "UserId", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] - public Guid UserId { get; set; } + [ApiMember(Name = "UserId", Description = "User Id", IsRequired = false, DataType = "string", ParameterType = "path", Verb = "GET")] + public Guid? UserId { get; set; } /// /// Limit results to items containing a specific person @@ -277,7 +278,7 @@ namespace MediaBrowser.Api.UserLibrary /// Task{ItemsResult}. private ItemsResult GetItems(GetItems request) { - var user = _userManager.GetUserById(request.UserId); + var user = request.UserId.HasValue ? _userManager.GetUserById(request.UserId.Value) : null; var items = GetItemsToSerialize(request, user); @@ -328,7 +329,11 @@ namespace MediaBrowser.Api.UserLibrary /// private IEnumerable GetItemsToSerialize(GetItems request, User user) { - var item = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : _dtoService.GetItemByDtoId(request.ParentId, user.Id); + var userId = user == null ? (Guid?)null : user.Id; + + var item = string.IsNullOrEmpty(request.ParentId) ? + user == null ? (BaseItem)_libraryManager.RootFolder : user.RootFolder : + _dtoService.GetItemByDtoId(request.ParentId, userId); // Default list type = children IEnumerable items; @@ -337,16 +342,20 @@ namespace MediaBrowser.Api.UserLibrary { var idList = request.Ids.Split(',').ToList(); - items = idList.Select(i => _dtoService.GetItemByDtoId(i, user.Id)); + items = idList.Select(i => _dtoService.GetItemByDtoId(i, userId)); } else if (request.Recursive) { - items = ((Folder)item).GetRecursiveChildren(user); + items = user == null ? + ((Folder)item).RecursiveChildren : + ((Folder)item).GetRecursiveChildren(user); } else { - items = ((Folder)item).GetChildren(user, true); + items = user == null ? + ((Folder)item).Children : + ((Folder)item).GetChildren(user, true); } if (request.IncludeIndexContainers)