From 47fd81a5910eab3483f79d03eedf9307bc81252f Mon Sep 17 00:00:00 2001 From: l3wdfut4pwr Date: Tue, 17 Mar 2026 14:11:45 +0200 Subject: simple registration prototype --- app/auth/register.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'app/auth') diff --git a/app/auth/register.py b/app/auth/register.py index e69de29..f1c3ec3 100644 --- a/app/auth/register.py +++ b/app/auth/register.py @@ -0,0 +1,32 @@ +from app.models.auth import User +from argon2 import PasswordHasher +from fastapi import APIRouter, Depends, HTTPException, status +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.future import select + +from app.schemas.auth import RegisterSchema +from app.utils.db import get_db + +router = APIRouter() +ph = PasswordHasher() + + +@router.post("/register") +async def register(user: RegisterSchema, db: AsyncSession = Depends(get_db)): + result = await db.execute( + select(User).where( + (User.username == user.username) | (User.email == user.email) + ) + ) + existing = result.scalar_one_or_none() + if existing: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Username or email already exists", + ) + + hashed = ph.hash(user.password) + new_user = User(username=user.username, email=user.email, password_hash=hashed) + db.add(new_user) + await db.commit() + return {"message": "User registered successfully"} -- cgit v1.3-3-g829e