42organization / 42gg.server.dev.v2

42GG, 42 Seoul 카뎃들을 위한 탁구 게임 매칭 서비스 🏓
https://gg.42seoul.kr/
10 stars 7 forks source link

✨ [Feature] Team 취소하기 API #845

Closed AreSain closed 2 months ago

AreSain commented 3 months ago

Description

Request

URI

PATCH /agenda/team/cancel?agenda_id=agenda_id

Request body

{
        "teamKey": string,  // 랜덤하게 생성되는 팀별 고유 키
}

Response

Status code

Response body

{}

GWT

Feature: 팀 취소하기

    Scenario: 팀을 취소합니다.
    Given agenda가 생성되어 있습니다.
    And 팀이 생성되어 있습니다.
    And 호스트가 로그인되어 있습니다.
    And 팀을 취소할 agenda_id를 쿼리파라미터로 받습니다.
    And 취소할 팀 키를 request body로 받습니다.
    When 해당 팀 취소 요청을 받으면
    Then 팀 취소 요청이 성공하고 204를 반환합니다.

    Scenario: agenda가 없을 경우 확정에 실패합니다.
    Given 없는 agenda의 정보를 쿼리파라미터로 받습니다.
        When 팀 취소 요청을 받으면
        Then 팀 취소 요청이 실패하고 404 에러코드를 반환합니다. // AGENDA_NOT_FOUND 404

    Scenario: 팀의 식별키가 올바르지 않을 경우 취소에 실패합니다.
        Given agenda가 생성되어 있습니다.
        And 없는 팀의 식별 키에 대한 정보를 입력합니다.
        When 팀 취소 요청을 받으면
        Then 팀 취소 요청이 실패하고 404 에러코드를 반환합니다. // TEAM_NOT_FOUND 404

    Scenario: 팀 호스트가 아닐 경우 취소에 실패합니다.
        Given agenda가 생성되어 있습니다.
        And 팀이 생성되어 있습니다.
    And 호스트가 아닌 사용자가 로그인되어 있습니다.
    And 팀을 취소할 agenda_id를 쿼리파라미터로 받습니다.
    And 취소할 팀 키를 request body로 받습니다.
    When 해당 팀 취소 요청을 받으면
    Then 팀 취소 요청이 실패하고 403 에러코드를 반환합니다. // HOST_FORBIDDEN 403

    Scenario: 진행중인 agenda의 팀 취소에 실패합니다.
        Given agenda가 생성되어 있습니다.
        And 팀이 생성되어 있습니다.
        And 팀이 확정되어 있습니다.
    And 호스트가 로그인되어 있습니다.
    And agenda가 진행 중 입니다.
    And 팀을 취소할 agenda_id를 쿼리파라미터로 받습니다.
    And 취소할 팀 키를 request body로 받습니다.
    When 해당 팀 취소 요청을 받으면
    Then 팀 취소 요청이 실패하고 403 에러코드를 반환합니다. // AGENDA_ALREADY_START 403

Todo

ETC

No response