mirror of https://github.com/Sonarr/Sonarr
New: Reduce size of Custom Formats in responses for most endpoints
This commit is contained in:
parent
fc8e6d6f02
commit
4ce4031dd8
|
@ -44,7 +44,7 @@ namespace Sonarr.Api.V3.Blocklist
|
||||||
SourceTitle = model.SourceTitle,
|
SourceTitle = model.SourceTitle,
|
||||||
Languages = model.Languages,
|
Languages = model.Languages,
|
||||||
Quality = model.Quality,
|
Quality = model.Quality,
|
||||||
CustomFormats = formatCalculator.ParseCustomFormat(model, model.Series).ToResource(),
|
CustomFormats = formatCalculator.ParseCustomFormat(model, model.Series).ToResource(false),
|
||||||
Date = model.Date,
|
Date = model.Date,
|
||||||
Protocol = model.Protocol,
|
Protocol = model.Protocol,
|
||||||
Indexer = model.Indexer,
|
Indexer = model.Indexer,
|
||||||
|
|
|
@ -44,7 +44,7 @@ namespace Sonarr.Api.V3.CustomFormats
|
||||||
|
|
||||||
protected override CustomFormatResource GetResourceById(int id)
|
protected override CustomFormatResource GetResourceById(int id)
|
||||||
{
|
{
|
||||||
return _formatService.GetById(id).ToResource();
|
return _formatService.GetById(id).ToResource(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[RestPostById]
|
[RestPostById]
|
||||||
|
@ -69,7 +69,7 @@ namespace Sonarr.Api.V3.CustomFormats
|
||||||
[Produces("application/json")]
|
[Produces("application/json")]
|
||||||
public List<CustomFormatResource> GetAll()
|
public List<CustomFormatResource> GetAll()
|
||||||
{
|
{
|
||||||
return _formatService.All().ToResource();
|
return _formatService.All().ToResource(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[RestDeleteById]
|
[RestDeleteById]
|
||||||
|
|
|
@ -13,26 +13,32 @@ namespace Sonarr.Api.V3.CustomFormats
|
||||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||||
public override int Id { get; set; }
|
public override int Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public bool IncludeCustomFormatWhenRenaming { get; set; }
|
public bool? IncludeCustomFormatWhenRenaming { get; set; }
|
||||||
public List<CustomFormatSpecificationSchema> Specifications { get; set; }
|
public List<CustomFormatSpecificationSchema> Specifications { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class CustomFormatResourceMapper
|
public static class CustomFormatResourceMapper
|
||||||
{
|
{
|
||||||
public static CustomFormatResource ToResource(this CustomFormat model)
|
public static CustomFormatResource ToResource(this CustomFormat model, bool includeDetails)
|
||||||
{
|
{
|
||||||
return new CustomFormatResource
|
var resource = new CustomFormatResource
|
||||||
{
|
{
|
||||||
Id = model.Id,
|
Id = model.Id,
|
||||||
Name = model.Name,
|
Name = model.Name
|
||||||
IncludeCustomFormatWhenRenaming = model.IncludeCustomFormatWhenRenaming,
|
|
||||||
Specifications = model.Specifications.Select(x => x.ToSchema()).ToList()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (includeDetails)
|
||||||
|
{
|
||||||
|
resource.IncludeCustomFormatWhenRenaming = model.IncludeCustomFormatWhenRenaming;
|
||||||
|
resource.Specifications = model.Specifications.Select(x => x.ToSchema()).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<CustomFormatResource> ToResource(this IEnumerable<CustomFormat> models)
|
public static List<CustomFormatResource> ToResource(this IEnumerable<CustomFormat> models, bool includeDetails)
|
||||||
{
|
{
|
||||||
return models.Select(m => m.ToResource()).ToList();
|
return models.Select(m => m.ToResource(includeDetails)).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CustomFormat ToModel(this CustomFormatResource resource, List<ICustomFormatSpecification> specifications)
|
public static CustomFormat ToModel(this CustomFormatResource resource, List<ICustomFormatSpecification> specifications)
|
||||||
|
@ -41,8 +47,8 @@ namespace Sonarr.Api.V3.CustomFormats
|
||||||
{
|
{
|
||||||
Id = resource.Id,
|
Id = resource.Id,
|
||||||
Name = resource.Name,
|
Name = resource.Name,
|
||||||
IncludeCustomFormatWhenRenaming = resource.IncludeCustomFormatWhenRenaming,
|
IncludeCustomFormatWhenRenaming = resource.IncludeCustomFormatWhenRenaming ?? false,
|
||||||
Specifications = resource.Specifications.Select(x => MapSpecification(x, specifications)).ToList()
|
Specifications = resource.Specifications?.Select(x => MapSpecification(x, specifications)).ToList() ?? new List<ICustomFormatSpecification>()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
Quality = model.Quality,
|
Quality = model.Quality,
|
||||||
MediaInfo = model.MediaInfo.ToResource(model.SceneName),
|
MediaInfo = model.MediaInfo.ToResource(model.SceneName),
|
||||||
QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(series.QualityProfile.Value, model.Quality),
|
QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(series.QualityProfile.Value, model.Quality),
|
||||||
CustomFormats = formatCalculationService.ParseCustomFormat(model).ToResource()
|
CustomFormats = formatCalculationService.ParseCustomFormat(model).ToResource(false)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace Sonarr.Api.V3.History
|
||||||
SourceTitle = model.SourceTitle,
|
SourceTitle = model.SourceTitle,
|
||||||
Languages = model.Languages,
|
Languages = model.Languages,
|
||||||
Quality = model.Quality,
|
Quality = model.Quality,
|
||||||
CustomFormats = formatCalculator.ParseCustomFormat(model, model.Series).ToResource(),
|
CustomFormats = formatCalculator.ParseCustomFormat(model, model.Series).ToResource(false),
|
||||||
|
|
||||||
// QualityCutoffNotMet
|
// QualityCutoffNotMet
|
||||||
Date = model.Date,
|
Date = model.Date,
|
||||||
|
|
|
@ -127,7 +127,7 @@ namespace Sonarr.Api.V3.Indexers
|
||||||
|
|
||||||
// ReleaseWeight
|
// ReleaseWeight
|
||||||
CustomFormatScore = remoteEpisode.CustomFormatScore,
|
CustomFormatScore = remoteEpisode.CustomFormatScore,
|
||||||
CustomFormats = remoteEpisode.CustomFormats?.ToResource(),
|
CustomFormats = remoteEpisode.CustomFormats?.ToResource(false),
|
||||||
SceneMapping = remoteEpisode.SceneMapping.ToResource(),
|
SceneMapping = remoteEpisode.SceneMapping.ToResource(),
|
||||||
|
|
||||||
MagnetUrl = torrentInfo.MagnetUrl,
|
MagnetUrl = torrentInfo.MagnetUrl,
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace Sonarr.Api.V3.ManualImport
|
||||||
ReleaseGroup = model.ReleaseGroup,
|
ReleaseGroup = model.ReleaseGroup,
|
||||||
Quality = model.Quality,
|
Quality = model.Quality,
|
||||||
Languages = model.Languages,
|
Languages = model.Languages,
|
||||||
CustomFormats = model.CustomFormats.ToResource(),
|
CustomFormats = model.CustomFormats.ToResource(false),
|
||||||
|
|
||||||
// QualityWeight
|
// QualityWeight
|
||||||
DownloadId = model.DownloadId,
|
DownloadId = model.DownloadId,
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace Sonarr.Api.V3.Queue
|
||||||
Episode = includeEpisode && model.Episode != null ? model.Episode.ToResource() : null,
|
Episode = includeEpisode && model.Episode != null ? model.Episode.ToResource() : null,
|
||||||
Languages = model.Languages,
|
Languages = model.Languages,
|
||||||
Quality = model.Quality,
|
Quality = model.Quality,
|
||||||
CustomFormats = model.RemoteEpisode?.CustomFormats?.ToResource(),
|
CustomFormats = model.RemoteEpisode?.CustomFormats?.ToResource(false),
|
||||||
Size = model.Size,
|
Size = model.Size,
|
||||||
Title = model.Title,
|
Title = model.Title,
|
||||||
Sizeleft = model.Sizeleft,
|
Sizeleft = model.Sizeleft,
|
||||||
|
|
Loading…
Reference in New Issue