From fb95c3fc5fb36cde4378a4c69669911a2c3cc5b0 Mon Sep 17 00:00:00 2001 From: Backend IM Bot Date: Tue, 11 Mar 2025 08:31:52 +0000 Subject: [PATCH] feat: Update endpoint login --- app/api/endpoints/login.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/app/api/endpoints/login.py b/app/api/endpoints/login.py index 6ed4dac..77a2265 100644 --- a/app/api/endpoints/login.py +++ b/app/api/endpoints/login.py @@ -1,7 +1,26 @@ -from fastapi import APIRouter +from fastapi import APIRouter, Depends, HTTPException, status +from sqlalchemy.orm import Session +from typing import Optional +from models import User +from schemas import UserCreate +from database import get_db +from utils import hash_password router = APIRouter() -@router.post("/login") -async def login(username: str, password: str): - return {"message": "User logged in successfully", "username": username} \ No newline at end of file +@router.post("/signup", response_model=UserCreate, status_code=status.HTTP_201_CREATED) +async def create_user(user: UserCreate, db: Session = Depends(get_db)): + """ + Create a new user account + """ + existing_user = db.query(User).filter(User.email == user.email).first() + if existing_user: + raise HTTPException(status_code=status.HTTP_409_CONFLICT, detail="Email already registered") + + hashed_password = hash_password(user.password) + new_user = User(email=user.email, hashed_password=hashed_password) + db.add(new_user) + db.commit() + db.refresh(new_user) + + return new_user \ No newline at end of file