38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.common.db.session import get_db
|
|
from app.common.responses.api_response import success_response
|
|
from app.common.security.deps import get_current_user
|
|
from app.models.entities import User
|
|
from app.modules.users.schema import UpdateProfileRequest
|
|
from app.modules.users.service import UsersService
|
|
|
|
|
|
router = APIRouter(prefix="/api/v1/profile", tags=["profile"])
|
|
|
|
|
|
@router.get("")
|
|
def get_profile(current_user: User = Depends(get_current_user)):
|
|
return success_response(
|
|
{
|
|
"publicId": current_user.public_id,
|
|
"username": current_user.username or "",
|
|
"nickname": current_user.nickname,
|
|
"avatarUrl": current_user.avatar_url,
|
|
"email": current_user.email or "",
|
|
"mobile": current_user.mobile or "",
|
|
}
|
|
)
|
|
|
|
|
|
@router.put("")
|
|
def update_profile(
|
|
payload: UpdateProfileRequest,
|
|
current_user: User = Depends(get_current_user),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
data = UsersService(db).update_profile(current_user, payload)
|
|
return success_response(data)
|
|
|