Fixed: Ensure Root Folder exists when Adding Artist

Closes #5041
pull/5051/head
Bogdan 4 months ago
parent 8ff8c27e24
commit f49388f3c4

@ -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<ArtistResource> 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<ArtistResource> UpdateArtist(ArtistResource artistResource, bool moveFiles = false)
{
var artist = _artistService.GetArtist(artistResource.Id);

@ -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()));
}
}
}

Loading…
Cancel
Save