diff --git a/src/Lidarr.Api.V1/Artist/ArtistController.cs b/src/Lidarr.Api.V1/Artist/ArtistController.cs index e5829ff96..b31698541 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistController.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistController.cs @@ -63,6 +63,7 @@ namespace Lidarr.Api.V1.Artist SystemFolderValidator systemFolderValidator, QualityProfileExistsValidator qualityProfileExistsValidator, MetadataProfileExistsValidator metadataProfileExistsValidator, + RootFolderExistsValidator rootFolderExistsValidator, ArtistFolderAsRootFolderValidator artistFolderAsRootFolderValidator) : base(signalRBroadcaster) { @@ -95,6 +96,7 @@ namespace Lidarr.Api.V1.Artist PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace()); PostValidator.RuleFor(s => s.RootFolderPath) .IsValidPath() + .SetValidator(rootFolderExistsValidator) .SetValidator(artistFolderAsRootFolderValidator) .When(s => s.Path.IsNullOrWhiteSpace()); PostValidator.RuleFor(s => s.ArtistName).NotEmpty(); @@ -154,6 +156,7 @@ namespace Lidarr.Api.V1.Artist [RestPostById] [Consumes("application/json")] + [Produces("application/json")] public ActionResult AddArtist(ArtistResource artistResource) { var artist = _addArtistService.AddArtist(artistResource.ToModel()); @@ -163,6 +166,7 @@ namespace Lidarr.Api.V1.Artist [RestPutById] [Consumes("application/json")] + [Produces("application/json")] public ActionResult UpdateArtist(ArtistResource artistResource, bool moveFiles = false) { var artist = _artistService.GetArtist(artistResource.Id); diff --git a/src/NzbDrone.Core/Validation/Paths/RootFolderExistsValidator.cs b/src/NzbDrone.Core/Validation/Paths/RootFolderExistsValidator.cs index 8b4c4e7a0..d879af0d9 100644 --- a/src/NzbDrone.Core/Validation/Paths/RootFolderExistsValidator.cs +++ b/src/NzbDrone.Core/Validation/Paths/RootFolderExistsValidator.cs @@ -1,4 +1,5 @@ using FluentValidation.Validators; +using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; using NzbDrone.Core.RootFolders; @@ -19,7 +20,7 @@ namespace NzbDrone.Core.Validation.Paths { context.MessageFormatter.AppendArgument("path", context.PropertyValue?.ToString()); - return context.PropertyValue == null || _rootFolderService.All().Exists(r => r.Path.PathEquals(context.PropertyValue.ToString())); + return context.PropertyValue == null || _rootFolderService.All().Exists(r => r.Path.IsPathValid(PathValidationType.CurrentOs) && r.Path.PathEquals(context.PropertyValue.ToString())); } } }