58 lines
1.9 KiB
C#
Raw Permalink Normal View History

using System;
2020-10-29 12:17:09 +02:00
using System.IO;
using System.Threading.Tasks;
using MalwareMultiScan.Api.Data;
using MalwareMultiScan.Shared.Message;
2020-10-29 12:17:09 +02:00
namespace MalwareMultiScan.Api.Services.Interfaces
{
2020-10-29 16:09:56 +02:00
/// <summary>
/// Scan result service.
/// </summary>
2020-10-29 12:17:09 +02:00
public interface IScanResultService
2020-10-29 16:09:56 +02:00
{
/// <summary>
/// Create scan result.
/// </summary>
/// <param name="callbackUrl">Optional callback URL.</param>
2020-10-29 16:09:56 +02:00
/// <returns>Scan result entry with id.</returns>
Task<ScanResult> CreateScanResult(Uri callbackUrl);
2020-10-29 16:09:56 +02:00
/// <summary>
/// Get scan result.
/// </summary>
/// <param name="id">Result id.</param>
/// <returns>Scan result entry with id.</returns>
2020-10-29 12:17:09 +02:00
Task<ScanResult> GetScanResult(string id);
2020-10-29 16:09:56 +02:00
/// <summary>
/// Update scan result entry.
/// </summary>
/// <param name="resultId">Result id.</param>
/// <param name="backendId">Backend id.</param>
/// <param name="result">Scan result.</param>
Task UpdateScanResultForBackend(string resultId, string backendId, ScanResultMessage result = null);
2020-10-29 12:17:09 +02:00
2020-10-29 16:09:56 +02:00
/// <summary>
/// Queue URL for scanning.
/// </summary>
/// <param name="result">Result entry.</param>
/// <param name="fileUrl">Remote URL.</param>
2020-10-29 12:17:09 +02:00
Task QueueUrlScan(ScanResult result, string fileUrl);
2020-10-29 16:09:56 +02:00
/// <summary>
/// Store file.
/// </summary>
/// <param name="fileName">File name.</param>
/// <param name="fileStream">File stream.</param>
/// <returns>Unique file id.</returns>
2020-10-29 12:17:09 +02:00
Task<string> StoreFile(string fileName, Stream fileStream);
2020-10-29 16:09:56 +02:00
/// <summary>
/// Obtain file.
/// </summary>
/// <param name="id">Unique file id.</param>
/// <returns>Seekable file stream opened for reading.</returns>
2020-10-29 12:17:09 +02:00
Task<Stream> ObtainFile(string id);
}
}