From 30b29f63c470eb0e92c53ad7df67d6bcf8a25914 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 29 Dec 2013 09:54:11 -0500 Subject: be more tolerant of media folder names with invalid url chars --- .../Library/LibraryStructureService.cs | 50 +++++++++++++++++----- 1 file changed, 40 insertions(+), 10 deletions(-) (limited to 'MediaBrowser.Api/Library/LibraryStructureService.cs') diff --git a/MediaBrowser.Api/Library/LibraryStructureService.cs b/MediaBrowser.Api/Library/LibraryStructureService.cs index c964b5517..775907379 100644 --- a/MediaBrowser.Api/Library/LibraryStructureService.cs +++ b/MediaBrowser.Api/Library/LibraryStructureService.cs @@ -28,8 +28,8 @@ namespace MediaBrowser.Api.Library public string UserId { get; set; } } - [Route("/Library/VirtualFolders/{Name}", "POST")] - [Route("/Users/{UserId}/VirtualFolders/{Name}", "POST")] + [Route("/Library/VirtualFolders", "POST")] + [Route("/Users/{UserId}/VirtualFolders", "POST")] public class AddVirtualFolder : IReturnVoid { /// @@ -57,8 +57,8 @@ namespace MediaBrowser.Api.Library public bool RefreshLibrary { get; set; } } - [Route("/Library/VirtualFolders/{Name}", "DELETE")] - [Route("/Users/{UserId}/VirtualFolders/{Name}", "DELETE")] + [Route("/Library/VirtualFolders", "DELETE")] + [Route("/Users/{UserId}/VirtualFolders", "DELETE")] public class RemoveVirtualFolder : IReturnVoid { /// @@ -80,8 +80,8 @@ namespace MediaBrowser.Api.Library public bool RefreshLibrary { get; set; } } - [Route("/Library/VirtualFolders/{Name}/Name", "POST")] - [Route("/Users/{UserId}/VirtualFolders/{Name}/Name", "POST")] + [Route("/Library/VirtualFolders/Name", "POST")] + [Route("/Users/{UserId}/VirtualFolders/Name", "POST")] public class RenameVirtualFolder : IReturnVoid { /// @@ -109,8 +109,8 @@ namespace MediaBrowser.Api.Library public bool RefreshLibrary { get; set; } } - [Route("/Library/VirtualFolders/{Name}/Paths", "POST")] - [Route("/Users/{UserId}/VirtualFolders/{Name}/Paths", "POST")] + [Route("/Library/VirtualFolders/Paths", "POST")] + [Route("/Users/{UserId}/VirtualFolders/Paths", "POST")] public class AddMediaPath : IReturnVoid { /// @@ -138,8 +138,8 @@ namespace MediaBrowser.Api.Library public bool RefreshLibrary { get; set; } } - [Route("/Library/VirtualFolders/{Name}/Paths", "DELETE")] - [Route("/Users/{UserId}/VirtualFolders/{Name}/Paths", "DELETE")] + [Route("/Library/VirtualFolders/Paths", "DELETE")] + [Route("/Users/{UserId}/VirtualFolders/Paths", "DELETE")] public class RemoveMediaPath : IReturnVoid { /// @@ -243,6 +243,11 @@ namespace MediaBrowser.Api.Library /// The request. public void Post(AddVirtualFolder request) { + if (string.IsNullOrWhiteSpace(request.Name)) + { + throw new ArgumentNullException("request"); + } + var name = _fileSystem.GetValidFilename(request.Name); string rootFolderPath; @@ -307,6 +312,16 @@ namespace MediaBrowser.Api.Library /// The request. public void Post(RenameVirtualFolder request) { + if (string.IsNullOrWhiteSpace(request.Name)) + { + throw new ArgumentNullException("request"); + } + + if (string.IsNullOrWhiteSpace(request.NewName)) + { + throw new ArgumentNullException("request"); + } + string rootFolderPath; if (string.IsNullOrEmpty(request.UserId)) @@ -380,6 +395,11 @@ namespace MediaBrowser.Api.Library /// The request. public void Delete(RemoveVirtualFolder request) { + if (string.IsNullOrWhiteSpace(request.Name)) + { + throw new ArgumentNullException("request"); + } + string rootFolderPath; if (string.IsNullOrEmpty(request.UserId)) @@ -435,6 +455,11 @@ namespace MediaBrowser.Api.Library /// The request. public void Post(AddMediaPath request) { + if (string.IsNullOrWhiteSpace(request.Name)) + { + throw new ArgumentNullException("request"); + } + _directoryWatchers.Stop(); try @@ -476,6 +501,11 @@ namespace MediaBrowser.Api.Library /// The request. public void Delete(RemoveMediaPath request) { + if (string.IsNullOrWhiteSpace(request.Name)) + { + throw new ArgumentNullException("request"); + } + _directoryWatchers.Stop(); try -- cgit v1.2.3