diff options
Diffstat (limited to 'MediaBrowser.Api/UserLibrary')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/UserLibraryService.cs | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index 4377cf304..d351a8696 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -18,7 +18,6 @@ namespace MediaBrowser.Api.UserLibrary /// Class GetItem /// </summary> [Route("/Users/{UserId}/Items/{Id}", "GET")] - [Route("/Users/{UserId}/Items/Root", "GET")] [ServiceStack.ServiceHost.Api(Description = "Gets an item from a user's library")] public class GetItem : IReturn<BaseItemDto> { @@ -38,6 +37,21 @@ namespace MediaBrowser.Api.UserLibrary } /// <summary> + /// Class GetItem + /// </summary> + [Route("/Users/{UserId}/Items/Root", "GET")] + [ServiceStack.ServiceHost.Api(Description = "Gets the root folder from a user's library")] + public class GetRootFolder : IReturn<BaseItemDto> + { + /// <summary> + /// Gets or sets the user id. + /// </summary> + /// <value>The user id.</value> + [ApiMember(Name = "UserId", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public Guid UserId { get; set; } + } + + /// <summary> /// Class GetIntros /// </summary> [Route("/Users/{UserId}/Items/{Id}/Intros", "GET")] @@ -214,6 +228,7 @@ namespace MediaBrowser.Api.UserLibrary } [Route("/Users/{UserId}/PlayingItems/{Id}", "POST")] + [ServiceStack.ServiceHost.Api(Description = "Reports that a user has begun playing an item")] public class OnPlaybackStart : IReturnVoid { /// <summary> @@ -232,6 +247,7 @@ namespace MediaBrowser.Api.UserLibrary } [Route("/Users/{UserId}/PlayingItems/{Id}/Progress", "POST")] + [ServiceStack.ServiceHost.Api(Description = "Reports a user's playback progress")] public class OnPlaybackProgress : IReturnVoid { /// <summary> @@ -257,6 +273,7 @@ namespace MediaBrowser.Api.UserLibrary } [Route("/Users/{UserId}/PlayingItems/{Id}", "DELETE")] + [ServiceStack.ServiceHost.Api(Description = "Reports that a user has stopped playing an item")] public class OnPlaybackStopped : IReturnVoid { /// <summary> @@ -402,7 +419,7 @@ namespace MediaBrowser.Api.UserLibrary { var user = _userManager.GetUserById(request.UserId); - var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id); + var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id); // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); @@ -414,6 +431,22 @@ namespace MediaBrowser.Api.UserLibrary return ToOptimizedResult(result); } + public object Get(GetRootFolder request) + { + var user = _userManager.GetUserById(request.UserId); + + var item = user.RootFolder; + + // Get everything + var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); + + var dtoBuilder = new DtoBuilder(Logger); + + var result = dtoBuilder.GetBaseItemDto(item, user, fields, _libraryManager).Result; + + return ToOptimizedResult(result); + } + /// <summary> /// Gets the specified request. /// </summary> |
