• [x] 레포지토리 생성

    [exception]

    1. 레포지토리 디랙토리 생성 중 오류가 발생했을 때
    2. 같은 유저의 레포지토리 이름이 중복됐을 때
  • [x] 레포지토리 목록 조회

    • [ ] 페이징 처리
  • [x] 레포지토리 수정

    • 프로젝트 이름, 프로젝트 설명 변경
  • [x] 레포지토리 삭제

    • 레포지토리 삭제 후 복구 불가 (클라이언트에서 강력한 경고창, 삭제 절차 필요)
  • [x] 프로젝트 메타데이터 조회

    • 파일 이름, 수정 날짜 등 메타데이터, 전체 커밋 이력
  • [x] 프로젝트 특정 커밋 조회

    • 프로젝트 폴더 구조와 관련된 데이터
  • [x] 프로젝트 파일 조회

    • 파일 내용

    • 텍스트 파일 선택했을 때랑 이미지 파일 선택했을 때 다른 API로 요청해야함

      • 텍스트 파일을 선택했을 때 API 경로 : api/personal/project/text-file
      • 이미지 파일을 선택했을 때 API 경로 : api/personal/project/image-file
    • 응답은 json 형태가 아님

      [exception]

      1. 파일을 찾지 못했을 때
  • [x] 프로젝트 다운로드

    • 특정 커밋 상태의 프로젝트를 다운로드 받을 수 있음
  • [x] 프로젝트 최초 저장

    • [x] 프로젝트 업로드 용량 제한 100MB (결제 시 더 늘려주는 혜택도 고민) (100MB인 이유는 딱 간단한 웹 프로젝트 하나가 100MB 이내라고 판단해서 ex.dogFoot 프로젝트)

    [exception]

    1. 프로젝트 소유자와 API 요청 사용자가 일치하지 않을 때
    2. 프로젝트 저장 중 오류가 발생했을 때
    3. 업로드한 파일의 용량이 100MB를 초과했을 때
  • [x] 프로젝트 다음 버전 저장

    • [x] 프로젝트 업로드 용량 제한 100MB (결제 시 더 늘려주는 혜택도 고민)

    [exception]

    1. 프로젝트 소유자와 API 요청 사용자가 일치하지 않을 때
    2. 프로젝트 삭제 중 오류가 발생했을 때
    3. 프로젝트 저장 중 오류가 발생했을 때
    4. 업로드한 파일의 용량이 100MB를 초과했을 때
  • [x] 커밋 이력 삭제

    • 삭제하려는 커밋 이후의 커밋들도 연쇄적으로 삭제됨 (클라이언트에서 경고 문구 필요)
    • 첫 번째 커밋은 삭제할 수 없음 (부모 커밋에 접근하여 삭제해야하는데 첫 번째 커밋은 부모 커밋이 존재하지 않음)