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:
commit
93d92a0686
@ -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,
|
||||
|
||||
@ -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])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user