Label editing

This commit is contained in:
Olaf
2026-08-24 21:24:39 +02:00
parent 2810fd914d
commit 95992cc466
17 changed files with 259 additions and 7 deletions
+21
View File
@@ -6,6 +6,7 @@ from pydantic import BaseModel
from backend.app.api.dependencies import require_admin
from backend.app.database import get_connection, hash_password
from backend.app.services.link_service import delete_label
router = APIRouter()
@@ -127,6 +128,26 @@ def delete_user(user_id: str, current_user: dict = Depends(require_admin)):
return {'status': 'deleted', 'id': user_id}
@router.delete('/labels/{label_id}')
def admin_delete_label(label_id: str, _: dict = Depends(require_admin)):
if not delete_label(label_id, is_admin=True):
raise HTTPException(status_code=404, detail='Label not found')
return {'status': 'deleted', 'id': label_id}
@router.get('/labels')
def admin_list_labels(_: dict = Depends(require_admin)):
with get_connection() as conn:
rows = conn.execute(
'''
SELECT tags.id, tags.name, tags.created_by, users.username AS creator
FROM tags LEFT JOIN users ON users.id = tags.created_by
ORDER BY tags.name
'''
).fetchall()
return [dict(row) for row in rows]
@router.get('/plugins')
def list_plugins(_: dict = Depends(require_admin)):
with get_connection() as conn: