refac/fix: db operations

This commit is contained in:
Timothy Jaeryang Baek 2025-11-24 15:39:13 -05:00
parent 0a687980ee
commit f0d75e3a48
2 changed files with 14 additions and 8 deletions

View file

@ -290,10 +290,15 @@ class ModelsTable:
models = []
for model, user in items:
model_model = ModelModel.model_validate(model)
user_model = UserResponse(**UserModel.model_validate(user).model_dump())
models.append(
ModelUserResponse(**model_model.model_dump(), user=user_model)
ModelUserResponse(
**ModelModel.model_validate(model).model_dump(),
user=(
UserResponse(**UserModel.model_validate(user).model_dump())
if user
else None
),
)
)
return ModelListResponse(items=models, total=total)

View file

@ -227,9 +227,7 @@ class UsersTable:
) -> dict:
with get_db() as db:
# Join GroupMember so we can order by group_id when requested
query = db.query(User).outerjoin(
GroupMember, GroupMember.user_id == User.id
)
query = db.query(User)
if filter:
query_key = filter.get("query")
@ -245,6 +243,7 @@ class UsersTable:
direction = filter.get("direction")
if order_by and order_by.startswith("group_id:"):
query = query.outerjoin(GroupMember, GroupMember.user_id == User.id)
group_id = order_by.split(":", 1)[1]
if direction == "asc":
@ -291,11 +290,13 @@ class UsersTable:
query = query.order_by(User.created_at.desc())
# Count BEFORE pagination
query = query.distinct(User.id)
total = query.count()
if skip:
# correct pagination logic
if skip is not None:
query = query.offset(skip)
if limit:
if limit is not None:
query = query.limit(limit)
users = query.all()