Polish upload drafts, restore availability and offline API docs

This commit is contained in:
Pigway
2026-10-02 00:11:37 +08:00
parent 6652590b84
commit a4a257553a
9 changed files with 96 additions and 5 deletions
+14 -3
View File
@@ -243,7 +243,7 @@ def create_app(settings=None, start_worker=True):
dependencies=[Depends(require("devices:read"))],
)
def devices():
return [d.device() for d in registry.drivers.values()]
return [device(id) for id in registry.drivers]
@app.get(
"/api/v1/devices/{device_id}",
@@ -252,7 +252,16 @@ def create_app(settings=None, start_worker=True):
dependencies=[Depends(require("devices:read"))],
)
def device(device_id: str, refresh: bool = False):
return registry.get(device_id).device(refresh)
d = registry.get(device_id).device(refresh)
state = db.one("SELECT * FROM device_state WHERE device_id=?", (device_id,))
possible = bool(
state
and (
state["previous_image_id"] is not None
or state["base_image_id"] is not None
)
) and not service.blocked(device_id)
return d.model_copy(update={"can_restore": possible})
@app.get(
"/api/v1/devices/{device_id}/images",
@@ -432,6 +441,7 @@ def create_app(settings=None, start_worker=True):
asset = assets.put(
await run_in_threadpool(convert, data, fit, profile),
settings.sanitize(name),
kind="cache",
)
return asset
@@ -445,7 +455,8 @@ def create_app(settings=None, start_worker=True):
return [
assets.info(r["id"])
for r in db.all(
"SELECT id FROM assets ORDER BY created_at DESC LIMIT ?", (limit,)
"SELECT id FROM assets WHERE kind!='cache' ORDER BY created_at DESC LIMIT ?",
(limit,),
)
]