---
# System prepended metadata

title: 이슈트래커 API 의논

---

# 이슈트래커 API 의논

### API
##### 로그인
1. 로그인 (OAuth)
    - GitHub
    - Apple
    - 토큰 있을 시 메인화면으로()
~~2. (OAuth외) 로그인 & 회원가입 (선택)~~

##### 사용자
2. 유저 목록
    - 

##### ISSUE
3. ISSUE 생성
    - 제목, 내용, 작성자
    - (내용이 첫 댓글이 된다.) -> 그냥 `내용`으로 저장
    - (내용에 사진 업로드) -> S3에 올리고 이를 링크로 돌려주는 API
4. ISSUE 수정
    - (여기서) 담당자, 레이블, 마일스톤을 지정 -> 생성 시에는 지정할 수 있는 UI 없음
    - 각 수정마다 요청을 따로 보냄
5. ISSUE 닫기 
    - 다중 ISSUE 처리 : 여러 개 한 번에 닫기
6. ISSUE 목록
    - 제목, 설명, 마일스톤, 레이블, ISSUE Number : 처음 불러왔을 때 (마일스톤은 객체 자체말고 이름만 넘겨주면 됨), 기본적으로 상태가 open인 것들만 넘겨주기
    - 필터링 -> p6
        - 상태(open, closed), 이슈 작성자(나 or 지정), 이슈 담당자(나 or 지정), 댓글 작성자, 마일스톤 
        - 필터링은 조건 하나만(여러개 가능합니당 백엔드에서 쏴주시면 렌더링할게유 ㅎ , ㅎ)
        - 레이블, 마일스톤 중복 가능
        - 작성자, 담당자 중복 불가
        - 위의 조건도 중복 불가

    ```
    작성자 -> 유저 목록 정보를 response (유저 id)
    푸글 : name - xxx, id- 111, 
    솔라 : name - 솔라, id - 112,
    userId=111<--다른 작성자
    userId=112<--나
    작성자 필터링 시 -> `내가 작성한 이슈들` : 본인 user id
                 `다른 작성자 선택` : 해당 작성자의 user id
    ```

7. ISSUE 상세보기 -> p4
    - 작성자, 제목, 상태(open), 이슈 번호, 담당자, 레이블, 마일스톤(이름, 진행률)
    - 댓글 정보도 함께 보여줌
     
8. ISSUE 삭제하기
    - ISSUE ID

##### 댓글
8. 댓글 추가
    - 작성자, ~~사진~~, 작성시간, 내용, ~~이모지(나중에 봐서)~~
9. 댓글 보기
    - 작성자, ~~사진~~, 작성시간, 내용
10. 댓글 수정
    - 작성자, ~~사진~~, 작성시간, 내용
11. 댓글 삭제


##### 레이블
12. Label 생성
    - 제목, 설명, 색상코드 => response는 ok
    - 다시 목록 보여지는 부분은 Label 목록 API 요청해서 랜더링
13. Label 수정
    - 제목, 설명, 색상코드
14. Label 목록 보기
    - 제목, 설명, 색상코드
    - (별도로 Label 마다 상세정보 API는 요청하지 않음)
15. Label 삭제
    - Label id 값


##### 마일스톤
16. Milestone 목록 보기
    - 제목, 완료일, 열린 이슈 개수, 닫힌 이슈 개수, 설명, ~~해당 Milestone에 속하는 issue 목록~~
    - 진행율, 열린 이슈 개수, 닫힌 이슈 개수 => 계산해서 보내줄 지, 앞에서 계산 => 앞에서 하는 걸로
17. Milestone 수정
    - 제목, 완료날짜(yyyy-MM-DD, optional), 설명(optional), ~~(작성자, 생성날짜)~~
18. Milestone 생성
    - 제목, 완료날짜(yyyy-MM-DD, optional), 설명(optional), ~~작성자, 생성날짜)~~
19. Milestone 삭제
    - 마일스톤 ID
20. Milestone 선택 목록 보기
    - => 마일스톤 ID, 제목


##### 사진
20. 사진 업로드
    - 사진을 전달받아서 S3에 업로드 후, 생성된 link 반환

