mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: Implement UserProfiles
This commit is contained in:
parent
1bbb0269a3
commit
3b5c4f9d92
14 changed files with 1729 additions and 19 deletions
|
|
@ -28,6 +28,7 @@ from src.services.users.users import (
|
|||
get_user_session,
|
||||
read_user_by_id,
|
||||
read_user_by_uuid,
|
||||
read_user_by_username,
|
||||
update_user,
|
||||
update_user_avatar,
|
||||
update_user_password,
|
||||
|
|
@ -170,6 +171,20 @@ async def api_get_user_by_uuid(
|
|||
return await read_user_by_uuid(request, db_session, current_user, user_uuid)
|
||||
|
||||
|
||||
@router.get("/username/{username}", response_model=UserRead, tags=["users"])
|
||||
async def api_get_user_by_username(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
username: str,
|
||||
) -> UserRead:
|
||||
"""
|
||||
Get User by Username
|
||||
"""
|
||||
return await read_user_by_username(request, db_session, current_user, username)
|
||||
|
||||
|
||||
@router.put("/{user_id}", response_model=UserRead, tags=["users"])
|
||||
async def api_update_user(
|
||||
*,
|
||||
|
|
|
|||
|
|
@ -424,6 +424,30 @@ async def read_user_by_uuid(
|
|||
return user
|
||||
|
||||
|
||||
async def read_user_by_username(
|
||||
request: Request,
|
||||
db_session: Session,
|
||||
current_user: PublicUser | AnonymousUser,
|
||||
username: str,
|
||||
):
|
||||
# Get user
|
||||
statement = select(User).where(User.username == username)
|
||||
user = db_session.exec(statement).first()
|
||||
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail="User does not exist",
|
||||
)
|
||||
|
||||
# RBAC check
|
||||
await rbac_check(request, current_user, "read", user.user_uuid, db_session)
|
||||
|
||||
user = UserRead.model_validate(user)
|
||||
|
||||
return user
|
||||
|
||||
|
||||
async def get_user_session(
|
||||
request: Request,
|
||||
db_session: Session,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue