Skip to content

Issue API

joonhoPark edited this page Nov 11, 2020 · 24 revisions

Filter된 issue 목록

Method Endpoint
GET /issues
  • parameter

      //queryString
      isOpen: <issue_isOpen>,
      author: <issue_userId>,
      assignee: <user_id>,
      label: [<label_id>,<label_id>,...],
      milestone: <milestone_id>
  • responses

    • 성공
      res.status(200).json({
        success: true,
        data: [{
            id: <issue_id>,
            userId: <user_id>,
            author: <user_nickname>,
            title: <issue_title>,
            createdAt: <issue_createdAt>,
            closedAt: <issue_closedAt>,
            isOpen: <issue_isOpen>,
            commentCount: <count(comment)>,
            milestone: <milestone_title>,
            label: [{
                name: <label_name>,
                color: <label_name>,
            }, {...}],
            assignee: [{
                id: <user_id>,
                profileUrl: <user_profileUrl>,
            }, {...}] 
        }, {
            ...
        }
        ],
      })
    • 잘못된 요청
      • 파라미터가 안오거나 잘못왔을 때
      res.status(400).json({
        success: false,
        message: "파라미터 값이 잘못 되었습니다.",
      })
    • DB 에러
      res.status(600).json({
        success: false,
        message: "데이터베이스 에러",
      })
    • 서버 내부 에러
      res.status(500).json({
        success: false,
        message: "서버 내부 오류",
      })

여러 개의 issue 상태(open/close) 업데이트

Method Endpoint
PATCH /issues/open-close
  • parameter

    {
        issueId: [ ... ],
        isOpen: boolean
    }
  • responses

    • 성공
      res.status(200).json({
        success: true
      })
    • 잘못된 요청
      • 파라미터가 안오거나 잘못왔을 때
      res.status(400).json({
        success: false,
        message: "파라미터 값이 잘못 되었습니다.",
      })
      • 데이터가 변경되지 않았을 때
      res.status(304).json({
        success: false,
        message: "변경된 데이터가 없습니다.",
      })
    • DB 에러
      res.status(600).json({
        success: false,
        message: "데이터베이스 에러",
      })
    • 서버 내부 에러
      res.status(500).json({
        success: false,
        message: "서버 내부 오류",
      })

이슈 생성

Method Endpoint
POST /issues
  • body
{
    title: <issue_title>,
    content: <comment_content>,
    userId: <user_id>,
    assignee?: [<user_id>, ...],
    label?: [<label_id>, ...],
    milestoneId?: <milestone_id>,
}
  • responses
    • 성공
      res.status(201).json({
        success: true,
        issueId
      })
    • 잘못된 요청
      • 파라미터가 안오거나 잘못왔을 때
      res.status(400).json({
        success: false,
        message: "파라미터 값이 잘못 되었습니다.",
      })
    • DB 에러
      res.status(600).json({
        success: false,
        message: "데이터베이스 에러",
      })
    • 서버 내부 에러
      res.status(500).json({
        success: false,
        message: "서버 내부 오류",
      })

이슈 하나 상세정보 가져오기 (label, assignee, milestone까지 전부)

Method Endpoint
GET /issues/:id
  • responses
    • 성공
      res.status(200).json({
        success: true,
        data: {
            issueId: <issue_id>,
            title: <issue_title>,
            isOpen: <issue_isOpen>,
            author: <user_nickname>,
            profileUrl: <user_profileUrl>,
            createdAt: <issue_createdAt>,
            commentCount: <count(comment)>,
            label: [{
                id: <label_id>
                name: <label_name>,
                color: <label_color>,
            }, {...}],
            milestone: {
                id: <milestone_id>,
                title: <milestone_title>,
                openIssue: <count(issue)>,
                closeIssue: <count(issue)>,
            }
            assignee: [{
                id: <user_id>,
                profileUrl: <user_profileUrl>,
                nickname: <uesr_nickname>,
            }, {...}]
            
        }
      })
    • 잘못된 요청
      • 파라미터가 안오거나 잘못왔을 때
      res.status(400).json({
        success: false,
        message: "파라미터 값이 잘못 되었습니다.",
      })
    • DB 에러
      res.status(600).json({
        success: false,
        message: "데이터베이스 에러",
      })
    • 서버 내부 에러
      res.status(500).json({
        success: false,
        message: "서버 내부 오류",
      })

이슈의 assignees 수정

Method Endpoint
POST /issues/:id/assignee
  • body

        {
            add: [<user_id>, ...],
            delete: [<user_id>, ...]
        }
  • responses

    • 성공
      res.status(200).json({
        success: true 
      })
    • 잘못된 요청
      • 파라미터가 안오거나 잘못왔을 때
      res.status(400).json({
        success: false,
        message: "파라미터 값이 잘못 되었습니다.",
      })
    • DB 에러
      res.status(600).json({
        success: false,
        message: "데이터베이스 에러",
      })
    • 서버 내부 에러
      res.status(500).json({
        success: false,
        message: "서버 내부 오류",
      })

이슈의 label 목록 수정

Method Endpoint
PATCH /issues/:id/labels
  • body
    {
        add: [<label_id>, <label_id>, ...],
        delete: [<label_id>, <label_id>, ...]
    }
  • responses
    • 성공

      res.status(200).json({
        success: true,
      })
    • 잘못된 요청

      • 파라미터가 안오거나 잘못왔을 때
      res.status(400).json({
        success: false,
        message: "파라미터 값이 잘못 되었습니다.",
      })
    • DB 에러

      res.status(600).json({
        success: false,
        message: "데이터베이스 에러",
      })
    • 서버 내부 에러

      res.status(500).json({
        success: false,
        message: "서버 내부 오류",
      })

이슈 수정 (title, milestone)

Method Endpoint
PATCH /issues/:id
  • body

    {
        milestoneId?: <milestone_id>,
        title?: <issue_title>,
        isOpen?: <issue_isOpen>
    }
  • responses

    • 성공
      • milestoneId 변경 시
      res.status(200).json({
        success: true,
        data: {
          id: <milestone_id>,
          title: <milstone_title>,
          openIssue: <count(issue)>,
          closeIssue: <count(issue)> 
        }
      })
      • 그 외
      res.status(200).json({
        success: true
      }
    • 잘못된 요청
      • 파라미터가 안오거나 잘못왔을 때
      res.status(400).json({
        success: false,
        message: "파라미터 값이 잘못 되었습니다.",
      })
    • DB 에러
      res.status(600).json({
        success: false,
        message: "데이터베이스 에러",
      })
    • 서버 내부 에러
      res.status(500).json({
        success: false,
        message: "서버 내부 오류",
      })

Clone this wiki locally