implemented /getSaveData route
This commit is contained in:
parent
da27f84d68
commit
daa8305dde
@ -108,7 +108,9 @@ public static class Program
|
|||||||
var router = new SimpleRouter(loggerRoot);
|
var router = new SimpleRouter(loggerRoot);
|
||||||
router.DefaultRoute = new ServeFilesRouteHandler("public");
|
router.DefaultRoute = new ServeFilesRouteHandler("public");
|
||||||
router.MapRoute("/getSaveStatus", HttpMethod.GET, new GetSaveStatusHandler(_mainCancel.Token));
|
router.MapRoute("/getSaveStatus", HttpMethod.GET, new GetSaveStatusHandler(_mainCancel.Token));
|
||||||
router.MapRoute("/uploadSave/eu4", HttpMethod.POST, new UploadSaveHandler(_mainCancel.Token, bgJobManager, saveParsingSearchExpressions));
|
router.MapRoute("/uploadSave/eu4", HttpMethod.POST, new UploadSaveHandler(_mainCancel.Token,
|
||||||
|
bgJobManager, saveParsingSearchExpressions));
|
||||||
|
router.MapRoute("/getSaveData", HttpMethod.GET, new GetSaveDataHandler(_mainCancel.Token));
|
||||||
|
|
||||||
var app = new WebApp(_config.BaseUrl, loggerRoot, router, _mainCancel.Token);
|
var app = new WebApp(_config.BaseUrl, loggerRoot, router, _mainCancel.Token);
|
||||||
app.Run().GetAwaiter().GetResult();
|
app.Run().GetAwaiter().GetResult();
|
||||||
|
|||||||
33
ParadoxSaveParser.WebAPI/Routes/GetSaveDataHandler.cs
Normal file
33
ParadoxSaveParser.WebAPI/Routes/GetSaveDataHandler.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System.Net;
|
||||||
|
using ParadoxSaveParser.WebAPI.HttpHelpers;
|
||||||
|
|
||||||
|
namespace ParadoxSaveParser.WebAPI.Routes;
|
||||||
|
|
||||||
|
internal class GetSaveDataHandler : RouteHandlerBase
|
||||||
|
{
|
||||||
|
public GetSaveDataHandler(CancellationToken cancelAllToken)
|
||||||
|
: base(cancelAllToken)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override async Task<HttpStatusCode> HandleRequest(
|
||||||
|
HttpListenerContext ctx, ContextLogger requestLogger)
|
||||||
|
{
|
||||||
|
var idOrError = RequestHelper.GetQueryValue(ctx, "id");
|
||||||
|
if (idOrError.HasError)
|
||||||
|
return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken, idOrError.Error!);
|
||||||
|
string id = idOrError.Value!;
|
||||||
|
|
||||||
|
IOPath dataFilePath = PathHelper.GetParsedSaveFilePath(id);
|
||||||
|
if (!File.Exists(dataFilePath))
|
||||||
|
return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken,
|
||||||
|
new ErrorMessage(HttpStatusCode.InternalServerError,
|
||||||
|
$"Save with id {id} not found")
|
||||||
|
);
|
||||||
|
|
||||||
|
await using var dataFile = File.OpenRead(dataFilePath);
|
||||||
|
|
||||||
|
return await ReturnHelper.ResponseStream(ctx, requestLogger, _cancelAllToken,
|
||||||
|
dataFile, contentType: "application/json");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -16,11 +16,12 @@ internal class GetSaveStatusHandler : RouteHandlerBase
|
|||||||
var idOrError = RequestHelper.GetQueryValue(ctx, "id");
|
var idOrError = RequestHelper.GetQueryValue(ctx, "id");
|
||||||
if (idOrError.HasError)
|
if (idOrError.HasError)
|
||||||
return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken, idOrError.Error!);
|
return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken, idOrError.Error!);
|
||||||
|
string id = idOrError.Value!;
|
||||||
|
|
||||||
if (!Program._saveMetadataStorage.TryGetValue(idOrError.Value!, out var meta))
|
if (!Program._saveMetadataStorage.TryGetValue(id, out var meta))
|
||||||
return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken,
|
return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken,
|
||||||
new ErrorMessage(HttpStatusCode.InternalServerError,
|
new ErrorMessage(HttpStatusCode.InternalServerError,
|
||||||
$"Save with id {idOrError.Value} not found")
|
$"Save with id {id} not found")
|
||||||
);
|
);
|
||||||
|
|
||||||
return await ReturnHelper.ResponseJson(ctx, requestLogger, _cancelAllToken, meta);
|
return await ReturnHelper.ResponseJson(ctx, requestLogger, _cancelAllToken, meta);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user