updated admin page with more functionality, simplified burger menu and added many-to-many parent-child relationship
Build and Push Docker Image / build-and-push (pull_request) Successful in 59s
Python Code Quality / python-code-quality (pull_request) Successful in 10s
Python Test / python-test (pull_request) Successful in 17s

This commit is contained in:
Brian Bjarke Jensen
2025-11-10 22:58:52 +01:00
parent df28af880a
commit 402b5898bb
26 changed files with 952 additions and 564 deletions
+5 -15
View File
@@ -19,6 +19,7 @@ from baby_monitor.repositories.child.sqlite_child import SQLiteChildRepository
from baby_monitor.repositories.dependencies.get_child_repository import (
get_child_repository,
)
from baby_monitor.utils.access_control import verify_child_access
router = APIRouter(prefix="/api/diaper-changes", tags=["diaper-changes"])
@@ -34,12 +35,7 @@ def create_diaper_change(
) -> DiaperChangeResponse:
"""Create a new diaper change log entry."""
# Verify the child belongs to the authenticated user
child = child_repo.get_by_id(request.child_id)
if not child:
raise HTTPException(status_code=404, detail="Child not found")
if child["user_id"] != user_id:
raise HTTPException(status_code=403, detail="Access denied to this child")
verify_child_access(child_repo, request.child_id, user_id)
diaper_change = diaper_repo.create(
child_id=request.child_id,
@@ -81,9 +77,7 @@ def get_diaper_change(
raise HTTPException(status_code=404, detail="Diaper change log not found")
# Verify the diaper change belongs to user's child
child = child_repo.get_by_id(diaper_change["child_id"])
if not child or child["user_id"] != user_id:
raise HTTPException(status_code=403, detail="Access denied")
verify_child_access(child_repo, diaper_change["child_id"], user_id)
return DiaperChangeResponse(**diaper_change)
@@ -105,9 +99,7 @@ def update_diaper_change(
raise HTTPException(status_code=404, detail="Diaper change log not found")
# Verify the diaper change belongs to user's child
child = child_repo.get_by_id(diaper_change["child_id"])
if not child or child["user_id"] != user_id:
raise HTTPException(status_code=403, detail="Access denied")
verify_child_access(child_repo, diaper_change["child_id"], user_id)
updated = diaper_repo.update(
diaper_change_id=diaper_change_id,
@@ -142,9 +134,7 @@ def delete_diaper_change(
raise HTTPException(status_code=404, detail="Diaper change log not found")
# Verify the diaper change belongs to user's child
child = child_repo.get_by_id(diaper_change["child_id"])
if not child or child["user_id"] != user_id:
raise HTTPException(status_code=403, detail="Access denied")
verify_child_access(child_repo, diaper_change["child_id"], user_id)
success = diaper_repo.delete(diaper_change_id)
if not success: