refactoring, documentation pending

This commit is contained in:
Volodymyr Smirnov
2020-10-26 17:06:29 +02:00
parent 29156b7f10
commit 14c9c26979
39 changed files with 121 additions and 457 deletions

View File

@@ -1,9 +1,8 @@
using System;
using System.IO;
using System.Threading.Tasks;
using MalwareMultiScan.Api.Attributes;
using MalwareMultiScan.Api.Data.Models;
using MalwareMultiScan.Api.Services;
using MalwareMultiScan.Shared.Attributes;
using MalwareMultiScan.Shared.Data.Responses;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
@@ -16,13 +15,13 @@ namespace MalwareMultiScan.Api.Controllers
{
private readonly ScanResultService _scanResultService;
public QueueController( ScanResultService scanResultService)
public QueueController(ScanResultService scanResultService)
{
_scanResultService = scanResultService;
}
[HttpPost("file")]
[ProducesResponseType(typeof(ResultResponse), StatusCodes.Status201Created)]
[ProducesResponseType(typeof(ScanResult), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<IActionResult> ScanFile([FromForm] IFormFile file)
{
@@ -31,27 +30,29 @@ namespace MalwareMultiScan.Api.Controllers
string storedFileId;
await using (var uploadFileStream = file.OpenReadStream())
{
storedFileId = await _scanResultService.StoreFile(file.Name, uploadFileStream);
await _scanResultService.QueueUrlScan(result, Url.Action("Index", "Download", new {id = storedFileId},
}
await _scanResultService.QueueUrlScan(result, Url.Action("Index", "Download", new {id = storedFileId},
Request.Scheme, Request.Host.Value));
return Created(Url.Action("Index", "ScanResults", new {id = result.Id},
return Created(Url.Action("Index", "ScanResults", new {id = result.Id},
Request.Scheme, Request.Host.Value), result);
}
[HttpPost("url")]
[ProducesResponseType(typeof(ResultResponse), StatusCodes.Status201Created)]
[ProducesResponseType(typeof(ScanResult), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<IActionResult> ScanUrl([FromForm] [UrlValidation] Uri url)
public async Task<IActionResult> ScanUrl([FromForm] [HttpUrlValidation] Uri url)
{
var result = await _scanResultService.CreateScanResult();
var resultUrl = Url.Action("Index", "ScanResults", new {id = result.Id},
var resultUrl = Url.Action("Index", "ScanResults", new {id = result.Id},
Request.Scheme, Request.Host.Value);
await _scanResultService.QueueUrlScan(result, url.ToString());
return Created(resultUrl, result);
}
}