1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-23 22:25:14 -04:00

New: Bump Version to V3 to please the masses

This commit is contained in:
Qstick
2019-12-02 20:36:18 -05:00
parent 29011cac5e
commit 0aa8ac5d39
149 changed files with 212 additions and 214 deletions
+70
View File
@@ -0,0 +1,70 @@
using System.Collections.Generic;
using NzbDrone.Common.Reflection;
using NzbDrone.Core.ThingiProvider;
using Radarr.Http.ClientSchema;
using Radarr.Http.REST;
namespace Radarr.Api.V3
{
public class ProviderResource : RestResource
{
public string Name { get; set; }
public List<Field> Fields { get; set; }
public string ImplementationName { get; set; }
public string Implementation { get; set; }
public string ConfigContract { get; set; }
public string InfoLink { get; set; }
public ProviderMessage Message { get; set; }
public HashSet<int> Tags { get; set; }
public List<ProviderResource> Presets { get; set; }
}
public class ProviderResourceMapper<TProviderResource, TProviderDefinition>
where TProviderResource : ProviderResource, new()
where TProviderDefinition : ProviderDefinition, new()
{
public virtual TProviderResource ToResource(TProviderDefinition definition)
{
return new TProviderResource
{
Id = definition.Id,
Name = definition.Name,
ImplementationName = definition.ImplementationName,
Implementation = definition.Implementation,
ConfigContract = definition.ConfigContract,
Message = definition.Message,
Tags = definition.Tags,
Fields = SchemaBuilder.ToSchema(definition.Settings),
InfoLink = string.Format("https://github.com/Radarr/Radarr/wiki/Supported-{0}#{1}",
typeof(TProviderResource).Name.Replace("Resource", "s"),
definition.Implementation.ToLower())
};
}
public virtual TProviderDefinition ToModel(TProviderResource resource)
{
if (resource == null) return default(TProviderDefinition);
var definition = new TProviderDefinition
{
Id = resource.Id,
Name = resource.Name,
ImplementationName = resource.ImplementationName,
Implementation = resource.Implementation,
ConfigContract = resource.ConfigContract,
Message = resource.Message,
Tags = resource.Tags
};
var configContract = ReflectionExtensions.CoreAssembly.FindTypeByName(definition.ConfigContract);
definition.Settings = (IProviderConfig)SchemaBuilder.ReadFromSchema(resource.Fields, configContract);
return definition;
}
}
}