mirror of
https://github.com/xlorepdarkhelm/numinar-coding-project.git
synced 2026-09-06 00:28:25 -04:00
Adding the first routes.
Signed-off-by: Cliff Hill <xlorep@darkhelm.org>
This commit is contained in:
1
backend/src/backend/dependencies/__init__.py
Normal file
1
backend/src/backend/dependencies/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
"""Dependencies for the Numinar coding project backend."""
|
||||
1
backend/src/backend/routes/__init__.py
Normal file
1
backend/src/backend/routes/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
"""Routes for the Numinar coding project backend."""
|
||||
32
backend/src/backend/routes/users.py
Normal file
32
backend/src/backend/routes/users.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""Routes for user-related operations in the Numinar coding project backend."""
|
||||
|
||||
from fastapi import APIRouter
|
||||
from fastapi import HTTPException
|
||||
from sqlalchemy.exc import NoResultFound
|
||||
|
||||
from backend.dependencies.db import SessionDep
|
||||
from backend.schemas.users import UserResponse
|
||||
from backend.services.users import get_user
|
||||
from backend.services.users import get_users
|
||||
|
||||
|
||||
router = APIRouter(prefix="/users", tags=["users"])
|
||||
|
||||
|
||||
@router.get("/", response_model=list[UserResponse])
|
||||
async def read_users(session: SessionDep):
|
||||
"""Endpoint to retrieve all users."""
|
||||
users = await get_users(session)
|
||||
return users
|
||||
|
||||
|
||||
@router.get("/{email}", response_model=UserResponse)
|
||||
async def read_user(email: str, session: SessionDep):
|
||||
"""Endpoint to retrieve a user by email."""
|
||||
try:
|
||||
user = await get_user(session, email)
|
||||
except NoResultFound as e:
|
||||
raise HTTPException(
|
||||
status_code=404, detail=f"User with email {email} not found"
|
||||
) from e
|
||||
return user
|
||||
Reference in New Issue
Block a user