blob: 949c826fa81793bb6c9de5aa9af3291a528a9508 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import { Hono } from "hono";
import { authMiddleware } from "../middlewares/auth";
const app = new Hono()
.use(authMiddleware)
// GET /backups
.get("/", async (c) => {
const backups = await c.var.api.backups.list();
return c.json(backups, 200);
})
// POST /backups
.post("/", async (c) => {
const backup = await c.var.api.backups.triggerBackup();
return c.json(backup, 201);
})
// GET /backups/[backupId]
.get("/:backupId", async (c) => {
const backupId = c.req.param("backupId");
const backup = await c.var.api.backups.get({ backupId });
return c.json(backup, 200);
})
// GET /backups/[backupId]/download
.get("/:backupId/download", async (c) => {
const backupId = c.req.param("backupId");
const backup = await c.var.api.backups.get({ backupId });
if (!backup.assetId) {
return c.json({ error: "Backup not found" }, 404);
}
return c.redirect(`/api/assets/${backup.assetId}`);
})
// DELETE /backups/[backupId]
.delete("/:backupId", async (c) => {
const backupId = c.req.param("backupId");
await c.var.api.backups.delete({ backupId });
return c.body(null, 204);
});
export default app;
|