parent
f020459023
commit
406e0590a4
@ -0,0 +1,8 @@
|
|||||||
|
using Recyclarr.TrashLib.Config.Services;
|
||||||
|
|
||||||
|
namespace Recyclarr.TrashLib.Compatibility.Radarr;
|
||||||
|
|
||||||
|
public interface IRadarrCapabilityFetcher
|
||||||
|
{
|
||||||
|
Task<RadarrCapabilities?> GetCapabilities(IServiceConfiguration config);
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
using Recyclarr.TrashLib.Config.Services;
|
||||||
|
using Recyclarr.TrashLib.ExceptionTypes;
|
||||||
|
|
||||||
|
namespace Recyclarr.TrashLib.Compatibility.Radarr;
|
||||||
|
|
||||||
|
public class RadarrCapabilityEnforcer
|
||||||
|
{
|
||||||
|
private readonly IRadarrCapabilityFetcher _capabilityFetcher;
|
||||||
|
|
||||||
|
public RadarrCapabilityEnforcer(IRadarrCapabilityFetcher capabilityFetcher)
|
||||||
|
{
|
||||||
|
_capabilityFetcher = capabilityFetcher;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task Check(RadarrConfiguration config)
|
||||||
|
{
|
||||||
|
var capabilities = await _capabilityFetcher.GetCapabilities(config);
|
||||||
|
if (capabilities is null)
|
||||||
|
{
|
||||||
|
throw new ServiceIncompatibilityException("Capabilities could not be obtained");
|
||||||
|
}
|
||||||
|
|
||||||
|
// For the future: Add more capability checks here as needed
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
using Recyclarr.TrashLib.Compatibility.Radarr;
|
||||||
|
using Recyclarr.TrashLib.Compatibility.Sonarr;
|
||||||
|
using Recyclarr.TrashLib.Config.Services;
|
||||||
|
|
||||||
|
namespace Recyclarr.TrashLib.Compatibility;
|
||||||
|
|
||||||
|
public class ServiceAgnosticCapabilityEnforcer
|
||||||
|
{
|
||||||
|
private readonly SonarrCapabilityEnforcer _sonarrEnforcer;
|
||||||
|
private readonly RadarrCapabilityEnforcer _radarrEnforcer;
|
||||||
|
|
||||||
|
public ServiceAgnosticCapabilityEnforcer(
|
||||||
|
SonarrCapabilityEnforcer sonarrEnforcer,
|
||||||
|
RadarrCapabilityEnforcer radarrEnforcer)
|
||||||
|
{
|
||||||
|
_sonarrEnforcer = sonarrEnforcer;
|
||||||
|
_radarrEnforcer = radarrEnforcer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task Check(IServiceConfiguration config)
|
||||||
|
{
|
||||||
|
switch (config)
|
||||||
|
{
|
||||||
|
case SonarrConfiguration c:
|
||||||
|
await _sonarrEnforcer.Check(c);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RadarrConfiguration c:
|
||||||
|
await _radarrEnforcer.Check(c);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue