using System.Net; using ParadoxSaveParser.WebAPI.HttpHelpers; namespace ParadoxSaveParser.WebAPI.Routes; internal class GetSaveStatusHandler : RouteHandlerBase { public GetSaveStatusHandler(CancellationToken cancelAllToken) : base(cancelAllToken) { } public override async Task 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!; if (!Program._saveMetadataStorage.TryGetValue(id, out var meta)) return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken, new ErrorMessage(HttpStatusCode.InternalServerError, $"Save with id {id} not found") ); return await ReturnHelper.ResponseJson(ctx, requestLogger, _cancelAllToken, meta); } }