using System.Collections.Generic; using System.Linq; using AutoMapper; using Nancy; using NzbDrone.Api.Extensions; using NzbDrone.Core.Providers; using NzbDrone.Core.Repository.Quality; using NzbDrone.Api.QualityType; namespace NzbDrone.Api.QualityProfiles { public class QualityProfilesModule : NzbDroneApiModule { private readonly QualityProvider _qualityProvider; public QualityProfilesModule(QualityProvider qualityProvider) : base("/QualityProfiles") { _qualityProvider = qualityProvider; Get["/"] = x => OnGet(); Get["/{Id}"] = x => OnGet((int)x.Id); Put["/"] = x => OnPut(); Delete["/{Id}"] = x => OnDelete((int)x.Id); } private Response OnGet() { var profiles = _qualityProvider.All(); return Mapper.Map, List>(profiles).AsResponse(); } private Response OnGet(int id) { var profile = _qualityProvider.Get(id); return Mapper.Map(profile).AsResponse(); } private Response OnPost() { var request = Request.Body.FromJson(); var profile = Mapper.Map(request); request.Id = _qualityProvider.Add(profile); return request.AsResponse(); } //Update private Response OnPut() { var request = Request.Body.FromJson(); var profile = Mapper.Map(request); _qualityProvider.Update(profile); return request.AsResponse(); } private Response OnDelete(int id) { _qualityProvider.Delete(id); return new Response(); } } }