Add endpoint to download multidata directly
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
namespace ALttPRandomizer.Azure {
|
||||
using global::Azure.Storage.Blobs;
|
||||
using global::Azure.Storage.Blobs.Models;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -64,6 +63,20 @@
|
||||
return data;
|
||||
}
|
||||
|
||||
public async Task<BinaryData?> GetFile(string filename) {
|
||||
var blob = this.BlobClient.GetBlobClient(filename);
|
||||
var exists = await blob.ExistsAsync();
|
||||
if (!exists.HasValue || !exists.Value) {
|
||||
return null;
|
||||
}
|
||||
var result = await blob.DownloadContentAsync();
|
||||
if (result.HasValue) {
|
||||
return result.Value.Content;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<DateTimeOffset> GetFileCreation(string filename) {
|
||||
var blob = this.BlobClient.GetBlobClient(filename);
|
||||
var blobProperties = await blob.GetPropertiesAsync();
|
||||
|
||||
@@ -72,6 +72,19 @@
|
||||
return ResolveResult(await this.RandomizeService.RetryMulti(id));
|
||||
}
|
||||
|
||||
[Route("/multidata/{id}")]
|
||||
[HttpGet]
|
||||
public async Task<ActionResult> GetMultidata(string id) {
|
||||
var multidata = await this.SeedService.GetMultidata(id);
|
||||
if (multidata == null) {
|
||||
return NotFound("multidata not found");
|
||||
} else {
|
||||
return new FileContentResult(multidata.ToArray(), "application/octet-stream") {
|
||||
FileDownloadName = $"{id}_multidata",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private ActionResult ResolveResult(IDictionary<string, object> result) {
|
||||
if (result.TryGetValue("status", out var responseCode)) {
|
||||
if (responseCode is int code) {
|
||||
|
||||
@@ -127,5 +127,9 @@
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<BinaryData?> GetMultidata(string multiId) {
|
||||
return await this.AzureStorage.GetFile($"{multiId}/multidata");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user