update: overhauled firmware ui. Added public flash page.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from fastapi.responses import FileResponse
|
||||
from fastapi.responses import FileResponse, PlainTextResponse
|
||||
from auth.models import TokenPayload
|
||||
from auth.dependencies import require_permission
|
||||
from builder.models import (
|
||||
@@ -20,6 +20,7 @@ async def list_built_melodies(
|
||||
melodies = await service.list_built_melodies()
|
||||
return BuiltMelodyListResponse(melodies=melodies, total=len(melodies))
|
||||
|
||||
|
||||
@router.get("/for-melody/{firestore_melody_id}")
|
||||
async def get_for_firestore_melody(
|
||||
firestore_melody_id: str,
|
||||
@@ -32,6 +33,14 @@ async def get_for_firestore_melody(
|
||||
return result.model_dump()
|
||||
|
||||
|
||||
@router.get("/generate-builtin-list")
|
||||
async def generate_builtin_list(
|
||||
_user: TokenPayload = Depends(require_permission("melodies", "view")),
|
||||
):
|
||||
"""Generate a C++ header with PROGMEM arrays for all is_builtin archetypes."""
|
||||
code = await service.generate_builtin_list()
|
||||
return PlainTextResponse(content=code, media_type="text/plain")
|
||||
|
||||
|
||||
@router.get("/{melody_id}", response_model=BuiltMelodyInDB)
|
||||
async def get_built_melody(
|
||||
@@ -66,6 +75,15 @@ async def delete_built_melody(
|
||||
await service.delete_built_melody(melody_id)
|
||||
|
||||
|
||||
@router.post("/{melody_id}/toggle-builtin", response_model=BuiltMelodyInDB)
|
||||
async def toggle_builtin(
|
||||
melody_id: str,
|
||||
_user: TokenPayload = Depends(require_permission("melodies", "edit")),
|
||||
):
|
||||
"""Toggle the is_builtin flag for an archetype."""
|
||||
return await service.toggle_builtin(melody_id)
|
||||
|
||||
|
||||
@router.post("/{melody_id}/build-binary", response_model=BuiltMelodyInDB)
|
||||
async def build_binary(
|
||||
melody_id: str,
|
||||
|
||||
Reference in New Issue
Block a user