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!); if (!Program._saveMetadataStorage.TryGetValue(idOrError.Value!, out var meta)) return await ReturnHelper.ResponseError(ctx, requestLogger, _cancelAllToken, new ErrorMessage(HttpStatusCode.InternalServerError, $"Save with id {idOrError.Value} not found") ); return await ReturnHelper.ResponseJson(ctx, requestLogger, _cancelAllToken, meta); } }