jira-ai-fixer/app/api/users.py

34 lines
1.1 KiB
Python

"""User management endpoints."""
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.database import get_db
from app.core.security import get_password_hash
from app.models.user import User
from app.schemas.user import UserRead, UserUpdate
from app.api.deps import get_current_user
router = APIRouter()
@router.get("/me", response_model=UserRead)
async def get_me(user: User = Depends(get_current_user)):
"""Get current user profile."""
return user
@router.patch("/me", response_model=UserRead)
async def update_me(
user_update: UserUpdate,
user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db)
):
"""Update current user profile."""
if user_update.email:
user.email = user_update.email
if user_update.full_name:
user.full_name = user_update.full_name
if user_update.avatar_url:
user.avatar_url = user_update.avatar_url
if user_update.password:
user.hashed_password = get_password_hash(user_update.password)
return user