-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
문제
- Issue의 내용에 오류가 있을 경우 요청한 Issue를 거절할 수 있어야 한다.
해결
- Issue Reject API를 통해 Issue 요청을 거절한다.
조건
- 해당 Issue에 권한이 있는 사용자만 Reject할 수 있다.
절차
- 클라이언트에서 Issue에 대한 Reject API를 호출한다.
- 백엔드에서 검증한다.
- Issue의 상태가 Requested인지 검증한다.
- issue_id가 유효한지 검증한다.
- 해당 Issue에 권한이 있는지 검증한다.
- 검증을 통과하면 200 OK를 응답하고
- 해당 Issue의 Status는 Requested → Rejected로 된다.
- 검증을 통과하지 못하면 메세지와 함께 에러 코드를 응답한다. (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를 찾을 수 없습니다"}
인수조건
- 성공
# Given: 올바른 권한으로
# And: 이슈의 상태가 Requested이고,
# When: Issue Rejected API 를 호출했을 때,
# Then: 이슈 상태는 Rejected가 되어야 한다
-
실패
a.
# Given: 권한이 올바르지 않을 때, # And: 이슈의 상태가 Requested이고, # When: Issue Rejected API 를 호출했을 때, # Then: 상태코드 403을 리턴해야 한다 # And: 이슈 상태는 Requested로 변경되지 않아야 한다b.
# Given: 올바른 권한으로, # And: 이슈의 상태가 Requested가 닌 상태에서 # When: Issue Rejected API 를 호출했을 때, # Then: 상태코드 400을 리턴해야 한다 # And: 이슈 상태는 Requested로 변경되지 않아야 한다
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels