Merge pull request #15 from nightbug-xx/q3u13c-codex/add-from_user_email-to-response

Add complete count to friend homework listing
This commit is contained in:
nightbug-xx 2025-06-11 11:08:00 +09:00 committed by GitHub
commit 93d92a0686
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 8 deletions

View File

@ -8,7 +8,7 @@ from app.schemas.friend import (
FriendListItem,
)
from app.schemas.character import CharacterResponse
from app.schemas.homework import HomeworkTypeResponse
from app.schemas.dashboard import DashboardHomework
from app.services import friend_service
from app.models.user import User
@ -77,7 +77,10 @@ def get_friend_characters(
return friend_service.get_public_characters_of_friend(db, current_user.id, friend_id)
@router.get("/{friend_id}/characters/{character_id}/homeworks", response_model=list[HomeworkTypeResponse])
@router.get(
"/{friend_id}/characters/{character_id}/homeworks",
response_model=list[DashboardHomework],
)
def get_friend_character_homeworks(
friend_id: int,
character_id: int,

View File

@ -188,13 +188,34 @@ def get_public_homeworks_of_friend_character(
if not character:
raise HTTPException(status_code=404, detail="공개된 캐릭터를 찾을 수 없습니다.")
# 3. 공개된 숙제만 조회
results = db.query(HomeworkType).join(CharacterHomework).filter(
CharacterHomework.character_id == character_id,
HomeworkType.is_public == True
).all()
# 3. 공개된 숙제만 조회하며 완료 횟수도 포함
rows = (
db.query(
HomeworkType.id.label("homework_id"),
HomeworkType.title,
HomeworkType.reset_type,
HomeworkType.clear_count,
CharacterHomework.complete_cnt,
)
.join(CharacterHomework, CharacterHomework.homework_type_id == HomeworkType.id)
.filter(
CharacterHomework.character_id == character_id,
HomeworkType.is_public == True,
)
.order_by(HomeworkType.order.asc())
.all()
)
return results
return [
{
"homework_id": row[0],
"title": row[1],
"reset_type": row[2],
"clear_count": row[3],
"complete_cnt": row[4],
}
for row in rows
]
def delete_friend(db: Session, user_id: int, friend_id: int):
user_ids = sorted([user_id, friend_id])