v1.0
This commit is contained in:
parent
b78f7c8d3b
commit
d05c6660e0
@ -2,7 +2,7 @@ from typing import List
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.schemas.character import CharacterCreate, CharacterResponse, CharacterUpdateRequest
|
||||
from app.schemas.character import CharacterCreate, CharacterResponse, CharacterUpdateRequest, CharacterDetailResponse
|
||||
from app.schemas.homework import HomeworkSelectableResponse
|
||||
from app.crud.character import create_character, get_characters_by_user
|
||||
from app.services.character_homework_service import get_homeworks_with_assignment_status, assign_homework_to_character, unassign_homework_from_character
|
||||
@ -92,4 +92,19 @@ def delete_character(
|
||||
|
||||
db.delete(character)
|
||||
db.commit()
|
||||
return {"message": "캐릭터가 삭제되었습니다."}
|
||||
return {"message": "캐릭터가 삭제되었습니다."}
|
||||
|
||||
@router.get("/{character_id}", response_model=CharacterDetailResponse)
|
||||
def get_character(
|
||||
character_id: int,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
current_user = db.merge(current_user)
|
||||
|
||||
character = db.query(Character).filter(Character.id == character_id).first()
|
||||
|
||||
if not character or character.user_id != current_user.id:
|
||||
raise HTTPException(status_code=403, detail="권한이 없습니다.")
|
||||
|
||||
return character
|
||||
@ -6,7 +6,7 @@ from typing import List
|
||||
from app.core.deps import get_db, get_current_user
|
||||
from app.models.homework import HomeworkType
|
||||
from app.models.user import User
|
||||
from app.schemas.homework import HomeworkTypeCreate, HomeworkTypeResponse, HomeworkTypeUpdateRequest
|
||||
from app.schemas.homework import HomeworkTypeCreate, HomeworkTypeResponse, HomeworkTypeUpdateRequest, HomeworkTypeDetailResponse
|
||||
from app.crud.homework import create_homework_type, get_homework_types_by_user
|
||||
|
||||
router = APIRouter()
|
||||
@ -75,4 +75,19 @@ def delete_homework_type(
|
||||
|
||||
db.delete(homework_type)
|
||||
db.commit()
|
||||
return {"message": "숙제가 삭제되었습니다."}
|
||||
return {"message": "숙제가 삭제되었습니다."}
|
||||
|
||||
@router.get("/{homework_type_id}", response_model=HomeworkTypeDetailResponse)
|
||||
def get_homework_type(
|
||||
homework_type_id: int,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
current_user = db.merge(current_user)
|
||||
|
||||
homework_type = db.query(HomeworkType).filter(HomeworkType.id == homework_type_id).first()
|
||||
|
||||
if not homework_type or homework_type.user_id != current_user.id:
|
||||
raise HTTPException(status_code=403, detail="권한이 없습니다.")
|
||||
|
||||
return homework_type
|
||||
|
||||
@ -27,4 +27,17 @@ class CharacterResponse(BaseModel):
|
||||
class CharacterUpdateRequest(BaseModel):
|
||||
name: constr(min_length=1)
|
||||
server: constr(min_length=1)
|
||||
power: conint(ge=0) # 0 이상 정수
|
||||
power: conint(ge=0) # 0 이상 정수
|
||||
|
||||
class CharacterDetailResponse(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
server: str
|
||||
combat_power: int
|
||||
user_id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
model_config = {
|
||||
"from_attributes": True
|
||||
}
|
||||
|
||||
@ -34,4 +34,18 @@ class HomeworkTypeUpdateRequest(BaseModel):
|
||||
name: constr(min_length=1)
|
||||
description: str | None = None
|
||||
repeat_type: constr(min_length=1)
|
||||
repeat_count: conint(ge=1)
|
||||
repeat_count: conint(ge=1)
|
||||
|
||||
class HomeworkTypeDetailResponse(BaseModel):
|
||||
id: int
|
||||
user_id: int
|
||||
title: str
|
||||
description: str | None
|
||||
reset_type: str
|
||||
reset_time: time
|
||||
clear_count: int
|
||||
created_at: datetime
|
||||
|
||||
model_config = {
|
||||
"from_attributes": True
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user