implemented postgres support in repositories
This commit is contained in:
@@ -9,17 +9,15 @@ from baby_monitor.models.feeding import (
|
||||
FeedingResponse,
|
||||
)
|
||||
from baby_monitor.routers.auth import verify_token
|
||||
from baby_monitor.repositories.feeding.sqlite_feeding import (
|
||||
SQLiteFeedingRepository,
|
||||
from baby_monitor.repositories.interfaces import (
|
||||
ChildRepositoryInterface,
|
||||
FeedingRepositoryInterface,
|
||||
)
|
||||
from baby_monitor.repositories.dependencies.get_feeding_repository import (
|
||||
from baby_monitor.repositories.dependencies import (
|
||||
get_feeding_repository,
|
||||
)
|
||||
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
|
||||
from baby_monitor.utils import verify_child_access
|
||||
|
||||
router = APIRouter(prefix="/api/feedings", tags=["feedings"])
|
||||
|
||||
@@ -28,8 +26,12 @@ router = APIRouter(prefix="/api/feedings", tags=["feedings"])
|
||||
def create_feeding(
|
||||
request: CreateFeedingRequest,
|
||||
user_id: Annotated[int, Depends(verify_token)],
|
||||
feeding_repo: Annotated[SQLiteFeedingRepository, Depends(get_feeding_repository)],
|
||||
child_repo: Annotated[SQLiteChildRepository, Depends(get_child_repository)],
|
||||
feeding_repo: Annotated[
|
||||
FeedingRepositoryInterface, Depends(get_feeding_repository)
|
||||
],
|
||||
child_repo: Annotated[
|
||||
ChildRepositoryInterface, Depends(get_child_repository)
|
||||
],
|
||||
) -> FeedingResponse:
|
||||
"""Create a new feeding log entry."""
|
||||
# Verify the child belongs to the authenticated user
|
||||
@@ -48,8 +50,12 @@ def create_feeding(
|
||||
@router.get("/active", response_model=FeedingResponse | None)
|
||||
def get_active_feeding(
|
||||
user_id: Annotated[int, Depends(verify_token)],
|
||||
feeding_repo: Annotated[SQLiteFeedingRepository, Depends(get_feeding_repository)],
|
||||
child_repo: Annotated[SQLiteChildRepository, Depends(get_child_repository)],
|
||||
feeding_repo: Annotated[
|
||||
FeedingRepositoryInterface, Depends(get_feeding_repository)
|
||||
],
|
||||
child_repo: Annotated[
|
||||
ChildRepositoryInterface, Depends(get_child_repository)
|
||||
],
|
||||
) -> FeedingResponse | None:
|
||||
"""Get the current active feeding (where end_time is null) for the user."""
|
||||
feedings = feeding_repo.get_by_user_id(user_id)
|
||||
@@ -70,7 +76,9 @@ def get_active_feeding(
|
||||
@router.get("", response_model=list[FeedingResponse])
|
||||
def get_user_feedings(
|
||||
user_id: Annotated[int, Depends(verify_token)],
|
||||
feeding_repo: Annotated[SQLiteFeedingRepository, Depends(get_feeding_repository)],
|
||||
feeding_repo: Annotated[
|
||||
FeedingRepositoryInterface, Depends(get_feeding_repository)
|
||||
],
|
||||
) -> list[FeedingResponse]:
|
||||
"""Get all feeding logs for the authenticated user's children."""
|
||||
feedings = feeding_repo.get_by_user_id(user_id)
|
||||
@@ -81,8 +89,12 @@ def get_user_feedings(
|
||||
def get_feeding(
|
||||
feeding_id: int,
|
||||
user_id: Annotated[int, Depends(verify_token)],
|
||||
feeding_repo: Annotated[SQLiteFeedingRepository, Depends(get_feeding_repository)],
|
||||
child_repo: Annotated[SQLiteChildRepository, Depends(get_child_repository)],
|
||||
feeding_repo: Annotated[
|
||||
FeedingRepositoryInterface, Depends(get_feeding_repository)
|
||||
],
|
||||
child_repo: Annotated[
|
||||
ChildRepositoryInterface, Depends(get_child_repository)
|
||||
],
|
||||
) -> FeedingResponse:
|
||||
"""Get a specific feeding log by ID."""
|
||||
feeding = feeding_repo.get_by_id(feeding_id)
|
||||
@@ -101,8 +113,12 @@ def update_feeding(
|
||||
feeding_id: int,
|
||||
request: UpdateFeedingRequest,
|
||||
user_id: Annotated[int, Depends(verify_token)],
|
||||
feeding_repo: Annotated[SQLiteFeedingRepository, Depends(get_feeding_repository)],
|
||||
child_repo: Annotated[SQLiteChildRepository, Depends(get_child_repository)],
|
||||
feeding_repo: Annotated[
|
||||
FeedingRepositoryInterface, Depends(get_feeding_repository)
|
||||
],
|
||||
child_repo: Annotated[
|
||||
ChildRepositoryInterface, Depends(get_child_repository)
|
||||
],
|
||||
) -> FeedingResponse:
|
||||
"""Update a feeding log entry."""
|
||||
feeding = feeding_repo.get_by_id(feeding_id)
|
||||
@@ -114,11 +130,14 @@ def update_feeding(
|
||||
verify_child_access(child_repo, feeding["child_id"], user_id)
|
||||
|
||||
# Update the feeding
|
||||
feeding_type_value = (
|
||||
request.feeding_type.value if request.feeding_type else None
|
||||
)
|
||||
updated_feeding = feeding_repo.update(
|
||||
feeding_id=feeding_id,
|
||||
start_time=request.start_time,
|
||||
end_time=request.end_time,
|
||||
feeding_type=request.feeding_type.value if request.feeding_type else None,
|
||||
feeding_type=feeding_type_value,
|
||||
)
|
||||
|
||||
if not updated_feeding:
|
||||
@@ -131,8 +150,12 @@ def update_feeding(
|
||||
def delete_feeding(
|
||||
feeding_id: int,
|
||||
user_id: Annotated[int, Depends(verify_token)],
|
||||
feeding_repo: Annotated[SQLiteFeedingRepository, Depends(get_feeding_repository)],
|
||||
child_repo: Annotated[SQLiteChildRepository, Depends(get_child_repository)],
|
||||
feeding_repo: Annotated[
|
||||
FeedingRepositoryInterface, Depends(get_feeding_repository)
|
||||
],
|
||||
child_repo: Annotated[
|
||||
ChildRepositoryInterface, Depends(get_child_repository)
|
||||
],
|
||||
) -> None:
|
||||
"""Delete a feeding log entry."""
|
||||
feeding = feeding_repo.get_by_id(feeding_id)
|
||||
|
||||
Reference in New Issue
Block a user