42organization / 42gg.server.dev.v2

42GG, 42 Seoul 카뎃들을 위한 탁구 게임 매칭 서비스 🏓

Home Page:https://gg.42seoul.kr/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

✨ [Feature] Team 생성하기 API

AreSain opened this issue · comments

Description

Request

URI

POST /agenda/team?agenda_id=agenda_id

Request body

{
    "teamName": string,
		"teamIsPrivate": bool,
		"teamLocation": string,
		"teamContent": string,
}

Response

Status code

  • 201
  • 400
    • Valid 팀 이름이 너무 김
    • AGENDA_NOT_OPEN
    • LOCATION_NOT_VALID
  • 403
    • TICKET_NOT_EXIST
    • AGENDA_HOST_FORBIDDEN
  • 404
    • AGENDA_NOT_FOUND
  • 409
    • TEAM_NAME_EXIST
    • TEAM_ALREADY_EXIST

teamConfirm : request / cancel / approve

coalition : gun gon gam lee spring summer autumn winter

Response body

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

GWT

Feature: 팀 만들기

	Scenario: 팀을 만듭니다.
    Given agenda가 생성되어 있습니다.
    And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
    And 팀을 생성할 인자를 보냅니다.
    When 해당 팀 만들기 요청을 받으면
    Then 팀 만들기가 성공하고 201과 팀 키를 반환합니다.

	Scenario: agenda가 없을 경우 생성에 실패합니다.
    Given 없는 agenda의 정보를 쿼리파라미터로 받습니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 404 에러코드를 반환합니다. // AGENDA_NOT_FOUND 404
    
	Scenario: deadline이 지난 agenda의 경우 생성에 실패합니다.
    Given agenda가 생성되어 있습니다.
    And deadline이 지난 agenda의 정보를 쿼리파라미터로 받습니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 400 에러코드를 반환합니다. // AGENDA_NOT_OPEN 400

	Scenario: agenda 개최자일 경우 생성에 실패합니다.
    Given 사용자가 만든 agenda가 생성되어 있습니다.
    And 개최자가 로그인되어 있습니다.
	  And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
    And 팀을 생성합니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 403 에러코드를 반환합니다. // AGENDA_HOST_FORBIDDEN 403
    
	Scenario: Location 제한과 다를 경우 생성에 실패합니다.
    Given agenda가 생성되어 있습니다.
    And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
    And agenda조건에 맞지 않는 Location을 보냅니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 400 에러코드를 반환합니다. // LOCATION_NOT_VALID 400

	Scenario: 이미 같은 agenda에 만든 팀이 있을 경우 생성에 실패합니다.
    Given agenda가 생성되어 있습니다.
	  And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
    And 사용자가 만든 팀이 생성되어 있습니다.
    And 팀을 생성합니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 409 에러코드를 반환합니다. // TEAM_ALREADY_EXIST 409
    
	Scenario: 이미 같은 agenda에 참여한 팀이 있을 경우 생성에 실패합니다.
    Given agenda가 생성되어 있습니다.
	  And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
	  And 팀이 생성되어 있습니다.
    And 사용자가 팀에 참가합니다.
    And 팀을 생성합니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 409 에러코드를 반환합니다. // TEAM_ALREADY_EXIST 409

	Scenario: ticket이 없을 경우 생성에 실패합니다.
    Given agenda가 생성되어 있습니다.
    And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 403 에러코드를 반환합니다. // TICKET_NOT_EXIST 403

	Scenario: Location 정보가 ENUM과 다를 경우 생성에 실패합니다.
    Given agenda가 생성되어 있습니다.
    And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
    And 인자에 Location에 올바르지 않은 인자를 보냅니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 400 에러코드를 반환합니다. // LOCATION_NOT_VALID 400
    
	Scenario: 중복된 팀 이름이 있을 경우 생성에 실패합니다.
    Given agenda가 생성되어 있습니다.
	  And 팀을 생성할 agenda_id를 쿼리파라미터로 받습니다.
    And 팀이 생성되어 있습니다.
    And 중복된 이름으로 팀을 생성합니다.
    When 팀 만들기 요청을 받으면
    Then 팀 만들기 요청이 실패하고 409 에러코드를 반환합니다. // TEAM_NAME_EXIST 409

Todo

  • todo1

ETC

No response