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,
|
FriendListItem,
|
||||||
)
|
)
|
||||||
from app.schemas.character import CharacterResponse
|
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.services import friend_service
|
||||||
from app.models.user import User
|
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)
|
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(
|
def get_friend_character_homeworks(
|
||||||
friend_id: int,
|
friend_id: int,
|
||||||
character_id: int,
|
character_id: int,
|
||||||
|
|||||||
@ -188,13 +188,34 @@ def get_public_homeworks_of_friend_character(
|
|||||||
if not character:
|
if not character:
|
||||||
raise HTTPException(status_code=404, detail="공개된 캐릭터를 찾을 수 없습니다.")
|
raise HTTPException(status_code=404, detail="공개된 캐릭터를 찾을 수 없습니다.")
|
||||||
|
|
||||||
# 3. 공개된 숙제만 조회
|
# 3. 공개된 숙제만 조회하며 완료 횟수도 포함
|
||||||
results = db.query(HomeworkType).join(CharacterHomework).filter(
|
rows = (
|
||||||
CharacterHomework.character_id == character_id,
|
db.query(
|
||||||
HomeworkType.is_public == True
|
HomeworkType.id.label("homework_id"),
|
||||||
).all()
|
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):
|
def delete_friend(db: Session, user_id: int, friend_id: int):
|
||||||
user_ids = sorted([user_id, friend_id])
|
user_ids = sorted([user_id, friend_id])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user