Skip to content

Issue Reject API  #213

@JinHoooooou

Description

@JinHoooooou

문제

  • Issue의 내용에 오류가 있을 경우 요청한 Issue를 거절할 수 있어야 한다.

해결

  • Issue Reject API를 통해 Issue 요청을 거절한다.

조건

  • 해당 Issue에 권한이 있는 사용자만 Reject할 수 있다.

절차

  1. 클라이언트에서 Issue에 대한 Reject API를 호출한다.
  2. 백엔드에서 검증한다.
    • Issue의 상태가 Requested인지 검증한다.
    • issue_id가 유효한지 검증한다.
    • 해당 Issue에 권한이 있는지 검증한다.
  3. 검증을 통과하면 200 OK를 응답하고
    • 해당 Issue의 Status는 Requested → Rejected로 된다.
  4. 검증을 통과하지 못하면 메세지와 함께 에러 코드를 응답한다. (Res 참고)

API

Auth: Bearer JWT

Req

POST /actions/issue-reject/

request body 
{
  "issue_id": Integer
}

Res

  • 200 OK
# 성공
{"message": "이슈 거절"}
# Issue의 Status는 Rejected로 변경
  • 403 Forbidden
# 요청한 유저가 Issue에 대한 권한이 없을 때
{"message": "권한이 없습니다"} 
  • 400 Bad Request
# 해당 Issue의 Status가 Requested가 아닐 때
{"message" : "유효한 요청이 아닙니다."}
  • 404 Not Found
# issue_id가 존재하지 않을 때,
{"message": "이슈 ID를 찾을 수 없습니다"}

인수조건

  1. 성공
# Given: 올바른 권한으로
# And: 이슈의 상태가 Requested이고,

# When: Issue Rejected API 를 호출했을 때,

# Then: 이슈 상태는 Rejected가 되어야 한다
  1. 실패

    a.

    # Given: 권한이 올바르지 않을 때,
    # And: 이슈의 상태가 Requested이고,
    
    # When: Issue Rejected API 를 호출했을 때,
    
    # Then: 상태코드 403을 리턴해야 한다
    # And: 이슈 상태는 Requested로 변경되지 않아야 한다
    

    b.

    # Given: 올바른 권한으로,
    # And: 이슈의 상태가 Requested가 닌 상태에서
    
    # When: Issue Rejected API 를 호출했을 때,
    
    # Then: 상태코드 400을 리턴해야 한다
    # And: 이슈 상태는 Requested로 변경되지 않아야 한다
    

API

인수조건

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions