diff --git a/src/main/card/service/CardService.py b/src/main/card/service/CardService.py index b685f65..e060cbf 100644 --- a/src/main/card/service/CardService.py +++ b/src/main/card/service/CardService.py @@ -13,6 +13,7 @@ def update_ai_summary(self, user_id: uuid.UUID, card_id: uuid.UUID) -> CardAISum def get_cards_by_space(self, space_id: uuid.UUID) -> List[Card]: ... def create_card_with_links(self, space_id: uuid.UUID, title: str, chat_id: uuid.UUID, points: List[str]) -> Card: ... def delete_ai_summary(self, user_id: uuid.UUID, card_id: uuid.UUID) -> None: ... + def delete_card(self, user_id: uuid.UUID, card_id: uuid.UUID) -> None: ... class CardService(CardServiceProtocol): def __init__( @@ -96,4 +97,25 @@ def create_card_with_links(self, space_id: uuid.UUID, title: str, chat_id: uuid. for point in points: self.repository.create_cardlink(card_id, chat_id, point) - return card \ No newline at end of file + return card + + def delete_card(self, user_id: uuid.UUID, card_id: uuid.UUID) -> None: + """ + 카드를 삭제합니다. + + Args: + user_id: 사용자 ID + card_id: 카드 ID + + Raises: + HTTPException: 카드가 존재하지 않거나 접근 권한이 없는 경우 + """ + card = self.repository.get_by_id(card_id) + if not card: + raise HTTPException( + status_code=404, + detail="Resource not found" + ) + + self._verify_card_ownership(card, user_id) + self.repository.delete(card_id) \ No newline at end of file