From 7103e764a4f7a6e142251bee787722f3e41d18af Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 31 Aug 2020 14:47:57 +0200 Subject: Fix model binding in UpdateLibraryOptions --- .../LibraryStructureDto/AddVirtualFolderDto.cs | 15 +++++++++++++++ .../Models/LibraryStructureDto/LibraryOptionsDto.cs | 15 --------------- .../LibraryStructureDto/UpdateLibraryOptionsDto.cs | 21 +++++++++++++++++++++ 3 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 Jellyfin.Api/Models/LibraryStructureDto/AddVirtualFolderDto.cs delete mode 100644 Jellyfin.Api/Models/LibraryStructureDto/LibraryOptionsDto.cs create mode 100644 Jellyfin.Api/Models/LibraryStructureDto/UpdateLibraryOptionsDto.cs (limited to 'Jellyfin.Api/Models/LibraryStructureDto') diff --git a/Jellyfin.Api/Models/LibraryStructureDto/AddVirtualFolderDto.cs b/Jellyfin.Api/Models/LibraryStructureDto/AddVirtualFolderDto.cs new file mode 100644 index 0000000000..ab68d52238 --- /dev/null +++ b/Jellyfin.Api/Models/LibraryStructureDto/AddVirtualFolderDto.cs @@ -0,0 +1,15 @@ +using MediaBrowser.Model.Configuration; + +namespace Jellyfin.Api.Models.LibraryStructureDto +{ + /// + /// Add virtual folder dto. + /// + public class AddVirtualFolderDto + { + /// + /// Gets or sets library options. + /// + public LibraryOptions? LibraryOptions { get; set; } + } +} diff --git a/Jellyfin.Api/Models/LibraryStructureDto/LibraryOptionsDto.cs b/Jellyfin.Api/Models/LibraryStructureDto/LibraryOptionsDto.cs deleted file mode 100644 index a13cb90dbe..0000000000 --- a/Jellyfin.Api/Models/LibraryStructureDto/LibraryOptionsDto.cs +++ /dev/null @@ -1,15 +0,0 @@ -using MediaBrowser.Model.Configuration; - -namespace Jellyfin.Api.Models.LibraryStructureDto -{ - /// - /// Library options dto. - /// - public class LibraryOptionsDto - { - /// - /// Gets or sets library options. - /// - public LibraryOptions? LibraryOptions { get; set; } - } -} \ No newline at end of file diff --git a/Jellyfin.Api/Models/LibraryStructureDto/UpdateLibraryOptionsDto.cs b/Jellyfin.Api/Models/LibraryStructureDto/UpdateLibraryOptionsDto.cs new file mode 100644 index 0000000000..c78ed51f78 --- /dev/null +++ b/Jellyfin.Api/Models/LibraryStructureDto/UpdateLibraryOptionsDto.cs @@ -0,0 +1,21 @@ +using System; +using MediaBrowser.Model.Configuration; + +namespace Jellyfin.Api.Models.LibraryStructureDto +{ + /// + /// Update library options dto. + /// + public class UpdateLibraryOptionsDto + { + /// + /// Gets or sets the library item id. + /// + public Guid Id { get; set; } + + /// + /// Gets or sets library options. + /// + public LibraryOptions? LibraryOptions { get; set; } + } +} -- cgit v1.2.3 From d0a2d00b29d87e7f71e85efd38d2b6c8beafe4ea Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Fri, 5 Mar 2021 16:56:21 +0100 Subject: Fix UpdateMediaPath model binding (#5378) --- .../Controllers/LibraryStructureController.cs | 13 +++++------- .../UpdateMediaPathRequestDto.cs | 23 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 Jellyfin.Api/Models/LibraryStructureDto/UpdateMediaPathRequestDto.cs (limited to 'Jellyfin.Api/Models/LibraryStructureDto') diff --git a/Jellyfin.Api/Controllers/LibraryStructureController.cs b/Jellyfin.Api/Controllers/LibraryStructureController.cs index 328efea26e..be9127dd39 100644 --- a/Jellyfin.Api/Controllers/LibraryStructureController.cs +++ b/Jellyfin.Api/Controllers/LibraryStructureController.cs @@ -241,23 +241,20 @@ namespace Jellyfin.Api.Controllers /// /// Updates a media path. /// - /// The name of the library. - /// The path info. + /// The name of the library and path infos. /// A . /// Media path updated. /// The name of the library may not be empty. [HttpPost("Paths/Update")] [ProducesResponseType(StatusCodes.Status204NoContent)] - public ActionResult UpdateMediaPath( - [FromQuery] string? name, - [FromBody] MediaPathInfo? pathInfo) + public ActionResult UpdateMediaPath([FromBody, Required] UpdateMediaPathRequestDto mediaPathRequestDto) { - if (string.IsNullOrWhiteSpace(name)) + if (string.IsNullOrWhiteSpace(mediaPathRequestDto.Name)) { - throw new ArgumentNullException(nameof(name)); + throw new ArgumentNullException(nameof(mediaPathRequestDto), "Name must not be null or empty"); } - _libraryManager.UpdateMediaPath(name, pathInfo); + _libraryManager.UpdateMediaPath(mediaPathRequestDto.Name, mediaPathRequestDto.PathInfo); return NoContent(); } diff --git a/Jellyfin.Api/Models/LibraryStructureDto/UpdateMediaPathRequestDto.cs b/Jellyfin.Api/Models/LibraryStructureDto/UpdateMediaPathRequestDto.cs new file mode 100644 index 0000000000..fbd4985f9c --- /dev/null +++ b/Jellyfin.Api/Models/LibraryStructureDto/UpdateMediaPathRequestDto.cs @@ -0,0 +1,23 @@ +using System.ComponentModel.DataAnnotations; +using MediaBrowser.Model.Configuration; + +namespace Jellyfin.Api.Models.LibraryStructureDto +{ + /// + /// Update library options dto. + /// + public class UpdateMediaPathRequestDto + { + /// + /// Gets or sets the library name. + /// + [Required] + public string Name { get; set; } = null!; + + /// + /// Gets or sets library folder path information. + /// + [Required] + public MediaPathInfo PathInfo { get; set; } = null!; + } +} -- cgit v1.2.3