|
from fastapi import APIRouter, Depends, HTTPException |
|
from fastapi.security.utils import get_authorization_scheme |
|
from sqlalchemy.ext.asyncio import AsyncSession |
|
from app.models import User |
|
from app.schemas import UserSchema |
|
from app.main import async_session |
|
|
|
router = APIRouter() |
|
|
|
@router.post("/register") |
|
async def register_user(username: str, password: str, db: AsyncSession = Depends()): |
|
if await db.execute(User.__table__.select().where(User.username == username)).scalar(): |
|
raise HTTPException(status_code=400, detail="Username already exists") |
|
user = User(username=username, password=password) |
|
db.add(user) |
|
await db.commit() |
|
return {"message": "User created successfully"} |
|
|
|
@router.get("/users/") |
|
async def read_users(db: AsyncSession = Depends()): |
|
users = await db.execute(User.__table__.select()) |
|
return [{"username": user.username, "profile": user.profile} for user in users] |
|
|
|
@router.get("/users/{username}") |
|
async def read_user(username: str, db: AsyncSession = Depends()): |
|
user = await db.execute(User.__table__.select().where(User.username == username)) |
|
if user: |
|
return {"username": user.username, "profile": user.profile} |
|
raise HTTPException(status_code=404, detail="User not found") |