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