sukjenogi-backend/app/api/character_homework.py
2025-05-25 00:38:12 +09:00

44 lines
1.5 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from app.core.deps import get_db, get_current_user
from app.models.user import User
from app.models.character import Character
from app.schemas.character_homework import HomeworkCompletionUpdateRequest
from app.schemas.homework import HomeworkSelectableResponse
from app.services.character_homework_service import (
get_homeworks_with_assignment_status,
update_homework_completion
)
router = APIRouter(tags=["Character Homeworks"])
@router.get("/{character_id}/homeworks/selectable", response_model=list[HomeworkSelectableResponse])
def get_selectable_homeworks(
character_id: int,
db: Session = Depends(get_db),
current_user: User = Depends(get_current_user),
):
character = db.query(Character).filter_by(id=character_id, user_id=current_user.id).first()
if not character:
raise HTTPException(status_code=404, detail="캐릭터를 찾을 수 없습니다.")
return get_homeworks_with_assignment_status(db, current_user.id, character_id)
@router.patch("/{character_id}/homeworks/{homework_type_id}")
def update_homework_completion_api(
character_id: int,
homework_type_id: int,
body: HomeworkCompletionUpdateRequest,
db: Session = Depends(get_db),
current_user: User = Depends(get_current_user)
):
return update_homework_completion(
db=db,
user_id=current_user.id,
character_id=character_id,
homework_type_id=homework_type_id,
new_complete_cnt=body.complete_cnt
)