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 fastapi import APIRouter, Depends, HTTPException
|
||||||
from sqlalchemy.orm import Session
|
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.schemas.homework import HomeworkSelectableResponse
|
||||||
from app.crud.character import create_character, get_characters_by_user
|
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
|
from app.services.character_homework_service import get_homeworks_with_assignment_status, assign_homework_to_character, unassign_homework_from_character
|
||||||
@ -93,3 +93,18 @@ def delete_character(
|
|||||||
db.delete(character)
|
db.delete(character)
|
||||||
db.commit()
|
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.core.deps import get_db, get_current_user
|
||||||
from app.models.homework import HomeworkType
|
from app.models.homework import HomeworkType
|
||||||
from app.models.user import User
|
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
|
from app.crud.homework import create_homework_type, get_homework_types_by_user
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
@ -76,3 +76,18 @@ def delete_homework_type(
|
|||||||
db.delete(homework_type)
|
db.delete(homework_type)
|
||||||
db.commit()
|
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
|
||||||
|
|||||||
@ -28,3 +28,16 @@ class CharacterUpdateRequest(BaseModel):
|
|||||||
name: constr(min_length=1)
|
name: constr(min_length=1)
|
||||||
server: 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
|
||||||
|
}
|
||||||
|
|||||||
@ -35,3 +35,17 @@ class HomeworkTypeUpdateRequest(BaseModel):
|
|||||||
description: str | None = None
|
description: str | None = None
|
||||||
repeat_type: constr(min_length=1)
|
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