mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-23 02:41:36 -04:00
feat(server): restore historical nest as new revision
This commit is contained in:
1 parent
5598804942
commit
914c197181
8 files changed
+242
-17
No files matched your search
@@ -118,6 +118,19 @@ app.MapGet("/api/nests/deleted/{id:guid}/revisions/{revision:int}/file", (Guid i
|
||||
revision < 1 ? Results.BadRequest("Invalid revision.") :
|
||||
db.GetRevisionFile(id, revision, deleted: true) is { } file ? Results.File(file, "application/zip") : Results.NotFound());
|
||||
|
||||
app.MapPost("/api/nests/{id:guid}/revisions/{revision:int}/restore", (Guid id, int revision, HttpRequest request, NestDatabase db) =>
|
||||
{
|
||||
var error = ReadPrecondition(request, out var expected);
|
||||
if (error is not null) return error;
|
||||
if (revision < 1) return Results.BadRequest("Invalid revision.");
|
||||
try
|
||||
{
|
||||
var restored = db.Restore(id, revision, expected);
|
||||
return restored is null ? Results.NotFound() : Results.Ok(restored);
|
||||
}
|
||||
catch (RevisionConflictException conflict) { return Results.Json(conflict.Current, statusCode: 409); }
|
||||
});
|
||||
|
||||
app.Run();
|
||||
|
||||
static IResult? ReadPrecondition(HttpRequest request, out int revision)
|
||||
|
||||
Reference in new issue
Block a user