mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: user init & refactors
This commit is contained in:
parent
b4dcc14749
commit
a50fc67104
25 changed files with 356 additions and 358 deletions
|
|
@ -1,10 +1,24 @@
|
|||
from fastapi import Depends, APIRouter, Request
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
from sqlmodel import Session
|
||||
from src.security.auth import get_current_user
|
||||
from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserWithPassword
|
||||
from src.services.users.users import create_user, delete_user, get_profile_metadata, get_user_by_userid, update_user, update_user_password
|
||||
|
||||
|
||||
from src.core.events.database import get_db_session
|
||||
|
||||
from src.db.users import (
|
||||
User,
|
||||
UserCreate,
|
||||
UserRead,
|
||||
UserUpdate,
|
||||
UserUpdatePassword,
|
||||
)
|
||||
from src.services.users.users import (
|
||||
create_user,
|
||||
create_user_without_org,
|
||||
delete_user_by_id,
|
||||
read_user_by_id,
|
||||
read_user_by_uuid,
|
||||
update_user,
|
||||
update_user_password,
|
||||
)
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
|
@ -17,50 +31,95 @@ async def api_get_current_user(current_user: User = Depends(get_current_user)):
|
|||
"""
|
||||
return current_user.dict()
|
||||
|
||||
@router.get("/profile_metadata")
|
||||
async def api_get_current_user_metadata(request: Request,current_user: User = Depends(get_current_user)):
|
||||
|
||||
@router.post("/org_id/{org_id}", response_model=UserRead, tags=["users"])
|
||||
async def api_create_user_with_orgid(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
user_object: UserCreate,
|
||||
org_id: int,
|
||||
) -> UserRead:
|
||||
"""
|
||||
Get current user
|
||||
Create User with Org ID
|
||||
"""
|
||||
return await get_profile_metadata(request , current_user.dict())
|
||||
return await create_user(request, db_session, None, user_object, org_id)
|
||||
|
||||
|
||||
|
||||
@router.get("/user_id/{user_id}")
|
||||
async def api_get_user_by_userid(request: Request,user_id: str):
|
||||
@router.post("/", response_model=UserRead, tags=["users"])
|
||||
async def api_create_user_without_org(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
user_object: UserCreate,
|
||||
org_id: int,
|
||||
) -> UserRead:
|
||||
"""
|
||||
Get single user by user_id
|
||||
Create User
|
||||
"""
|
||||
return await get_user_by_userid(request, user_id)
|
||||
return await create_user_without_org(request, db_session, None, user_object)
|
||||
|
||||
|
||||
@router.post("/")
|
||||
async def api_create_user(request: Request,user_object: UserWithPassword, org_slug: str ):
|
||||
@router.get("/user_id/{user_id}", response_model=UserRead, tags=["users"])
|
||||
async def api_get_user_by_id(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
user_id: int,
|
||||
) -> UserRead:
|
||||
"""
|
||||
Create new user
|
||||
Get User by ID
|
||||
"""
|
||||
return await create_user(request, None, user_object, org_slug)
|
||||
return await read_user_by_id(request, db_session, None, user_id)
|
||||
|
||||
|
||||
@router.delete("/user_id/{user_id}")
|
||||
async def api_delete_user(request: Request, user_id: str, current_user: PublicUser = Depends(get_current_user)):
|
||||
@router.get("/user_uuid/{user_uuid}", response_model=UserRead, tags=["users"])
|
||||
async def api_get_user_by_uuid(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
user_uuid: str,
|
||||
) -> UserRead:
|
||||
"""
|
||||
Delete user by ID
|
||||
Get User by UUID
|
||||
"""
|
||||
|
||||
return await delete_user(request, current_user, user_id)
|
||||
return await read_user_by_uuid(request, db_session, None, user_uuid)
|
||||
|
||||
|
||||
@router.put("/user_id/{user_id}")
|
||||
async def api_update_user(request: Request, user_object: User, user_id: str, current_user: PublicUser = Depends(get_current_user)):
|
||||
@router.put("/", response_model=UserRead, tags=["users"])
|
||||
async def api_update_user(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
user_object: UserUpdate,
|
||||
) -> UserRead:
|
||||
"""
|
||||
Update user by ID
|
||||
Update User
|
||||
"""
|
||||
return await update_user(request, user_id, user_object, current_user)
|
||||
return await update_user(request, db_session, None, user_object)
|
||||
|
||||
@router.put("/password/user_id/{user_id}")
|
||||
async def api_update_user_password(request: Request, user_id: str , passwordChangeForm : PasswordChangeForm, current_user: PublicUser = Depends(get_current_user)):
|
||||
|
||||
@router.put("/change_password/", response_model=UserRead, tags=["users"])
|
||||
async def api_update_user_password(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
form: UserUpdatePassword,
|
||||
) -> UserRead:
|
||||
"""
|
||||
Update user password by ID
|
||||
Update User Password
|
||||
"""
|
||||
return await update_user_password(request,current_user, user_id, passwordChangeForm)
|
||||
return await update_user_password(request, db_session, None, form)
|
||||
|
||||
|
||||
@router.delete("/user_id/{user_id}", tags=["users"])
|
||||
async def api_delete_user(
|
||||
*,
|
||||
request: Request,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
user_id: int,
|
||||
):
|
||||
"""
|
||||
Delete User
|
||||
"""
|
||||
return await delete_user_by_id(request, db_session, None, user_id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue