2013-07-19 03:47:55 +00:00
|
|
|
|
using System.Collections.Generic;
|
2013-06-25 07:21:10 +00:00
|
|
|
|
using NzbDrone.Core.Qualities;
|
|
|
|
|
using NzbDrone.Api.Mapping;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Api.Qualities
|
|
|
|
|
{
|
|
|
|
|
public class QualityProfileSchemaModule : NzbDroneRestModule<QualityProfileResource>
|
|
|
|
|
{
|
2014-01-18 11:44:36 +00:00
|
|
|
|
private readonly IQualityDefinitionService _qualityDefinitionService;
|
|
|
|
|
|
|
|
|
|
public QualityProfileSchemaModule(IQualityDefinitionService qualityDefinitionService)
|
2013-06-25 07:21:10 +00:00
|
|
|
|
: base("/qualityprofiles/schema")
|
|
|
|
|
{
|
2014-01-18 11:44:36 +00:00
|
|
|
|
_qualityDefinitionService = qualityDefinitionService;
|
|
|
|
|
|
2013-06-25 07:21:10 +00:00
|
|
|
|
GetResourceAll = GetAll;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<QualityProfileResource> GetAll()
|
|
|
|
|
{
|
|
|
|
|
var profile = new QualityProfile();
|
|
|
|
|
profile.Cutoff = Quality.Unknown;
|
|
|
|
|
profile.Allowed = new List<Quality>();
|
|
|
|
|
|
2014-01-18 11:44:36 +00:00
|
|
|
|
return new List<QualityProfileResource> { QualityToResource(profile) };
|
2013-06-25 07:21:10 +00:00
|
|
|
|
}
|
|
|
|
|
|
2014-01-18 11:44:36 +00:00
|
|
|
|
private QualityProfileResource QualityToResource(QualityProfile profile)
|
2013-06-25 07:21:10 +00:00
|
|
|
|
{
|
|
|
|
|
return new QualityProfileResource
|
2014-01-18 11:44:36 +00:00
|
|
|
|
{
|
|
|
|
|
Cutoff = QualityToResource(_qualityDefinitionService.Get(profile.Cutoff)),
|
|
|
|
|
Available = _qualityDefinitionService.All().Select(QualityToResource).ToList(),
|
|
|
|
|
Allowed = profile.Allowed.Select(_qualityDefinitionService.Get).Select(QualityToResource).ToList(),
|
|
|
|
|
Name = profile.Name,
|
|
|
|
|
Id = profile.Id
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private QualityResource QualityToResource(QualityDefinition config)
|
|
|
|
|
{
|
|
|
|
|
return new QualityResource
|
|
|
|
|
{
|
|
|
|
|
Id = config.Quality.Id,
|
|
|
|
|
Name = config.Quality.Name,
|
|
|
|
|
Weight = config.Weight
|
|
|
|
|
};
|
2013-06-25 07:21:10 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|