|
|
@ -62,7 +62,7 @@ namespace Prowlarr.Api.V1
|
|
|
|
[Produces("application/json")]
|
|
|
|
[Produces("application/json")]
|
|
|
|
public ActionResult<TProviderResource> CreateProvider(TProviderResource providerResource)
|
|
|
|
public ActionResult<TProviderResource> CreateProvider(TProviderResource providerResource)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var providerDefinition = GetDefinition(providerResource, false);
|
|
|
|
var providerDefinition = GetDefinition(providerResource, true, false, false);
|
|
|
|
|
|
|
|
|
|
|
|
if (providerDefinition.Enable)
|
|
|
|
if (providerDefinition.Enable)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -78,7 +78,7 @@ namespace Prowlarr.Api.V1
|
|
|
|
[Produces("application/json")]
|
|
|
|
[Produces("application/json")]
|
|
|
|
public ActionResult<TProviderResource> UpdateProvider(TProviderResource providerResource)
|
|
|
|
public ActionResult<TProviderResource> UpdateProvider(TProviderResource providerResource)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var providerDefinition = GetDefinition(providerResource, false);
|
|
|
|
var providerDefinition = GetDefinition(providerResource, true, false, false);
|
|
|
|
var forceSave = Request.GetBooleanQueryParameter("forceSave");
|
|
|
|
var forceSave = Request.GetBooleanQueryParameter("forceSave");
|
|
|
|
|
|
|
|
|
|
|
|
// Only test existing definitions if it is enabled and forceSave isn't set.
|
|
|
|
// Only test existing definitions if it is enabled and forceSave isn't set.
|
|
|
@ -92,11 +92,11 @@ namespace Prowlarr.Api.V1
|
|
|
|
return Accepted(providerResource.Id);
|
|
|
|
return Accepted(providerResource.Id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private TProviderDefinition GetDefinition(TProviderResource providerResource, bool includeWarnings = false, bool validate = true)
|
|
|
|
private TProviderDefinition GetDefinition(TProviderResource providerResource, bool validate, bool includeWarnings, bool forceValidate)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var definition = _resourceMapper.ToModel(providerResource);
|
|
|
|
var definition = _resourceMapper.ToModel(providerResource);
|
|
|
|
|
|
|
|
|
|
|
|
if (validate)
|
|
|
|
if (validate && (definition.Enable || forceValidate))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Validate(definition, includeWarnings);
|
|
|
|
Validate(definition, includeWarnings);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -139,7 +139,7 @@ namespace Prowlarr.Api.V1
|
|
|
|
[HttpPost("test")]
|
|
|
|
[HttpPost("test")]
|
|
|
|
public object Test([FromBody] TProviderResource providerResource)
|
|
|
|
public object Test([FromBody] TProviderResource providerResource)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var providerDefinition = GetDefinition(providerResource, true);
|
|
|
|
var providerDefinition = GetDefinition(providerResource, true, true, true);
|
|
|
|
|
|
|
|
|
|
|
|
Test(providerDefinition, true);
|
|
|
|
Test(providerDefinition, true);
|
|
|
|
|
|
|
|
|
|
|
@ -172,7 +172,7 @@ namespace Prowlarr.Api.V1
|
|
|
|
[HttpPost("action/{name}")]
|
|
|
|
[HttpPost("action/{name}")]
|
|
|
|
public IActionResult RequestAction(string name, [FromBody] TProviderResource resource)
|
|
|
|
public IActionResult RequestAction(string name, [FromBody] TProviderResource resource)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var providerDefinition = GetDefinition(resource, true, false);
|
|
|
|
var providerDefinition = GetDefinition(resource, false, false, false);
|
|
|
|
|
|
|
|
|
|
|
|
var query = Request.Query.ToDictionary(x => x.Key, x => x.Value.ToString());
|
|
|
|
var query = Request.Query.ToDictionary(x => x.Key, x => x.Value.ToString());
|
|
|
|
|
|
|
|
|
|
|
@ -181,7 +181,7 @@ namespace Prowlarr.Api.V1
|
|
|
|
return Json(data);
|
|
|
|
return Json(data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected virtual void Validate(TProviderDefinition definition, bool includeWarnings)
|
|
|
|
private void Validate(TProviderDefinition definition, bool includeWarnings)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var validationResult = definition.Settings.Validate();
|
|
|
|
var validationResult = definition.Settings.Validate();
|
|
|
|
|
|
|
|
|
|
|
|