using System.Collections.Generic; using NzbDrone.Core.Extras.Files; using NzbDrone.Core.Extras.Metadata.Files; using NzbDrone.Core.Extras.Others; using NzbDrone.Core.Extras.Subtitles; using Radarr.Http; using Radarr.Http.REST; namespace NzbDrone.Api.ExtraFiles { public class ExtraFileModule : RadarrRestModule { private readonly IExtraFileService _subtitleFileService; private readonly IExtraFileService _metadataFileService; private readonly IExtraFileService _otherFileService; public ExtraFileModule(IExtraFileService subtitleFileService, IExtraFileService metadataFileService, IExtraFileService otherExtraFileService) : base("/extrafile") { _subtitleFileService = subtitleFileService; _metadataFileService = metadataFileService; _otherFileService = otherExtraFileService; GetResourceAll = GetFiles; } private List GetFiles() { if (!Request.Query.MovieId.HasValue) { throw new BadRequestException("MovieId is missing"); } var extraFiles = new List(); List subtitleFiles = _subtitleFileService.GetFilesByMovie(Request.Query.MovieId); List metadataFiles = _metadataFileService.GetFilesByMovie(Request.Query.MovieId); List otherExtraFiles = _otherFileService.GetFilesByMovie(Request.Query.MovieId); extraFiles.AddRange(subtitleFiles.ToResource()); extraFiles.AddRange(metadataFiles.ToResource()); extraFiles.AddRange(otherExtraFiles.ToResource()); return extraFiles; } } }