Initial commit: AuroraMusic monorepo

This commit is contained in:
Kris
2026-08-29 21:21:51 -05:00
commit 18f124a3d6
8881 changed files with 2283044 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm import Session
from .. import auth, schemas
from ..database import get_db
from ..models import User
router = APIRouter(prefix="/auth", tags=["auth"])
@router.post("/signup", response_model=schemas.TokenResponse, status_code=status.HTTP_201_CREATED)
def signup(payload: schemas.SignupRequest, db: Session = Depends(get_db)):
existing = db.query(User).filter(User.email == payload.email.lower()).first()
if existing:
raise HTTPException(status_code=status.HTTP_409_CONFLICT, detail="Email already registered")
user = User(
email=payload.email.lower(),
hashed_password=auth.hash_password(payload.password),
display_name=payload.display_name,
)
db.add(user)
db.commit()
db.refresh(user)
token = auth.create_access_token(user.id)
return schemas.TokenResponse(access_token=token)
@router.post("/login", response_model=schemas.TokenResponse)
def login(payload: schemas.LoginRequest, db: Session = Depends(get_db)):
user = db.query(User).filter(User.email == payload.email.lower()).first()
if not user or not auth.verify_password(payload.password, user.hashed_password):
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid email or password")
token = auth.create_access_token(user.id)
return schemas.TokenResponse(access_token=token)
@router.get("/me", response_model=schemas.UserOut)
def me(current_user: User = Depends(auth.get_current_user)):
return current_user