using System.Threading.Tasks; using MalwareMultiScan.Api.Services.Interfaces; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace MalwareMultiScan.Api.Controllers { [ApiController] [Route("api/download")] [Produces("application/octet-stream")] public class DownloadController : Controller { private readonly IScanResultService _scanResultService; public DownloadController(IScanResultService scanResultService) { _scanResultService = scanResultService; } [HttpGet("{id}")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] public async Task Index(string id) { var fileStream = await _scanResultService.ObtainFile(id); if (fileStream == null) return NotFound(); return File(fileStream, "application/octet-stream"); } } }