Skip to content

Issue Reject API  #213

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions