Add base for members

This commit is contained in:
Sebastiaan
2025-06-17 21:23:14 +02:00
parent 1e6b138873
commit 479ca1986f
16 changed files with 921 additions and 63 deletions

View File

@@ -19,6 +19,7 @@ from app.models.apikey import (
ApiKeysPublic,
)
from app.models.base import ApiTags, Message, RowId
from app.models.member import MemberPublic, MemberUpdate, Member
from app.models.user import (
PermissionModule,
PermissionPart,
@@ -195,6 +196,37 @@ def read_user_me(current_user: CurrentUser) -> Any:
return current_user
@router.get("/me/member", response_model=MemberPublic, tags=[ApiTags.MEMBERS])
def read_user_me_member(current_user: CurrentUser) -> Any:
"""
Get current user member.
"""
return current_user.member
@router.put("/me/member", response_model=MemberPublic, tags=[ApiTags.MEMBERS])
def update_user_me_member(
*, session: SessionDep, current_user: CurrentUser, member_in: MemberUpdate
) -> Any:
"""
Get current user member.
"""
member = session.get(Member, current_user.member_id)
data_obj = member_in.model_dump(exclude_unset=True)
if not member:
member = Member.model_validate(data_obj)
current_user.member_id = member.id
session.add(current_user)
else:
member.sqlmodel_update(data_obj)
session.add(member)
session.commit()
session.refresh(member)
return member
@router.delete("/me", response_model=Message)
def delete_user_me(session: SessionDep, current_user: CurrentUser) -> Any:
"""