finished unit tests and docstrings

This commit is contained in:
Volodymyr Smirnov
2020-10-29 16:09:56 +02:00
parent b2902c128a
commit b68c285ce5
48 changed files with 910 additions and 194 deletions

View File

@@ -8,6 +8,9 @@ using Microsoft.AspNetCore.Mvc;
namespace MalwareMultiScan.Api.Controllers
{
/// <summary>
/// Queue controller.
/// </summary>
[ApiController]
[Route("api/queue")]
[Produces("application/json")]
@@ -15,23 +18,33 @@ namespace MalwareMultiScan.Api.Controllers
{
private readonly IScanResultService _scanResultService;
/// <summary>
/// Initialize queue controller.
/// </summary>
/// <param name="scanResultService">Scan result service.</param>
public QueueController(IScanResultService scanResultService)
{
_scanResultService = scanResultService;
}
/// <summary>
/// Queue file for scanning.
/// </summary>
/// <param name="file">File from form data.</param>
[HttpPost("file")]
[ProducesResponseType(typeof(ScanResult), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<IActionResult> ScanFile(
[Required, MaxFileSize] IFormFile file)
[Required] [MaxFileSize] IFormFile file)
{
var result = await _scanResultService.CreateScanResult();
string storedFileId;
await using (var uploadFileStream = file.OpenReadStream())
{
storedFileId = await _scanResultService.StoreFile(file.FileName, uploadFileStream);
}
await _scanResultService.QueueUrlScan(result, Url.Action("Index", "Download", new {id = storedFileId},
Request?.Scheme, Request?.Host.Value));
@@ -39,11 +52,15 @@ namespace MalwareMultiScan.Api.Controllers
return CreatedAtAction("Index", "ScanResults", new {id = result.Id}, result);
}
/// <summary>
/// Queue URL for scanning.
/// </summary>
/// <param name="url">URL from form data.</param>
[HttpPost("url")]
[ProducesResponseType(typeof(ScanResult), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<IActionResult> ScanUrl(
[FromForm, Required, IsHttpUrl] string url)
[FromForm] [Required] [IsHttpUrl] string url)
{
var result = await _scanResultService.CreateScanResult();