Skip to content

Commit 5eeb3a9

Browse files
summerlunaahyeonicjhy979dayelopdevHudi
authored
[release] v0.1.0 (#508)
* feat: 구글 캘린더 이벤트 조회 기능 추가 * feat: ExternalCalendarService 로직 정리 * refactor: 일정 우선순위 커스텀훅 view 사이즈 증가 및 리팩토링 * feat: 일정 더보기 기능 구현 * style: 일정 추가 버튼 스타일 수정 * fix: 시작 페이지 애니메이션 초기값 수정 * refactor: api 관련 상수 분리 * feat: access token 유효성 검사 기능 구현 * feat: 메인 페이지 접속 시 access token의 유효성 검사 * refactor: 로컬 스토리지 관련 상수 분리 * fix: 구글 로그인 에러 수정 * refactor: access token의 유효성을 검사하는 커스텀 훅 구현 및 분리 * refactor: 전역 사용자 상태 setter 함수명 변경 * refactor: hook 호출 순서 변경 * feat: access token 유효성 검사 결과에 따라 전역 사이드 바 상태 변경 * feat: 로그인 사용자용 페이지 접속 시 access token의 유효성 검사 * refactor: 불필요한 access token 타입 제거 * refactor: 컬럼명을 member_id에서 members_id로 변경 * feat: prod 환경에서 사용될 DDL 작성 * feat: prod 환경 db 설정 변경 * ci: 개별 클래스의 라인 커버리지가 75% 이하라면, 빌드가 실패하도록 설정 * fix: Jpa 오류를 해결하기 위한 getter 제거 * feat: 카테고리 삭제 시 연관된 스케줄도 삭제한다. * fix: 회원과 연관된 구독 정보들을 모두 삭제하도록 수정 * refactor: queryClient useErrorBoundary 디폴트 옵션 추가 * refactor: 에러 바운더리 컴포넌트 타입 수정 * fix: 에러 바운더리 컴포넌트 children prop 타입 수정 * feat: 통합 일정을 관리하기 위한 IntegrationSchedule 추가 * feat: spring jdbc 의존성 추가 * feat: 누락된 DB 컬럼 이름 추가 * feat: 통합 스케줄 형식으로 조회하기 위한 Dao 추가 * feat: 기존 로직 이전 및 테스트 이전 * feat: 불필요 파일 제거 * test: 불필요 메서드 삭제 및 누락된 테스트 추가 * feat: 소나큐브 오류원인이 되는 build.gradle 파일 수정 * chore: 젠킨스 CD 시점에 소나큐브를 수행 하도록 수정 * feat: Not Found 페이지 컴포넌트 구현 * fix: access token 유효성 검사 로직 error 처리 수정 * refactor: 불필요한 코드 제거 * feat: 입력창 공통 컴포넌트에 value props 추가 * feat: 일정 시작 및 종료 날짜 자동 설정 기능 구현 * fix: 종일 일정 수정 시 날짜 기본값이 보이지 않는 에러 수정 * ci: 프론트엔드 개발 서버 스크립트 추가 Co-authored-by: Daye Lee <[email protected]> * feat(Category): 카테고리 타입 필드를 추가한다 * feat(Category): 외부 캘린더를 저장하기 위한 table 생성 * refactor: 네이밍 및 필드 타입 변경 * feat: 외부 카테고리를 저장하는 기능 구현 * test: ExternalService 테스트 구현 * test: CategorySubscriptionService 테스트 구현 * test: ExternalCalendarController 검증 추가 * test: ExternalCalendar 인수테스트 추가 * refactor: 오타 수정 * fix: 프론트엔드 개발 서버 discord web hook 환경 변수 변경 Co-authored-by: Daye Lee <[email protected]> * chore: 불필요한 소나큐브 관련 xml 파일 제거 * chore: 프로덕션을 위한 DDL 파일 수정 * feat: 서브모듈 업데이트 * feat: data.sql 제거 * feat: schema.sql 갱신 * feat: 서브모듈 갱신 * refactor: 개인 카테고리 이름 변경 * feat: 개인 카테고리는 삭제할 수 없다 * feat: 개인 카테고리는 이름을 수정할 수 없다 * feat: 외부 캘린더 조회 반환 타입 변경 * feat: 외부 일정 및 개인 일정 조회 로직 개선 * feat: 외부 일정 및 개인 일정 조회 로직 개선 * feat: response에 categoryType 추가 * test: 커버리지를 위한 테스트 코드 수정 * feat: data.sql 제거 * test: 누락된 문서화 추가 * feat: GoogleExternalCalendarClient getExternalCalendars 요청 방식 변경 * feat: google 일정 종일 판단 로직 수정 * feat: NotFound 페이지 진입 시 사이드바 감추기 * style: NotFound 페이지 스타일 수정 * chore: 코드 스타일 수정 * feat: 날짜 단건 조회 모달 컴포넌트 구현 * style: 카테고리 페이지 버튼 스타일링 수정 * feat: 구글 캘린더 가져오기 모달 UI 구현 * feat: 구글 캘린더 연동 상수 및 api 구현 * feat: 입력 제어 커스텀훅에 select 태그를 위한 기능 추가 * feat: 구글 캘린더 연동 시 유효성 검사 * refactor: 타입 분리 및 불필요한 옵션 제거 * chore: react query client retry option 추가 * ci: 프론트엔드 배포 파이프라인 스크립트 수정 * feat: 프론트엔드 dev 서버 대응을 위한 CORS 규칙 업데이트 * feat: 프론트엔드 dev 서버 대응을 위한 oauth redirect uri 변경 * ci: 캐시 제거 방법 변경 * ci: 워딩 수정 * fix: 카테고리 타입이 잘못 들어온 경우를 처리한다 * fix: 외부 연동 카테고리에는 일정을 등록할 수 없다 * fix: 전체 일반 카테고리 조회 시 외부 연동 카테고리는 제외한다 * test: CategoryType 테스트 추가 * refactor: 던지는 예외 변경 * test: CategoryType 테스트 추가 * refactor: 메서드명 수정 * refactor: 메서드명 수정 * refactor: 메서드명 수정 * chore: script 수정 * feat: 외부 카테고리 중복 저장 시 예외를 던지도록 수정 * test: 외부 캘린더 중복 저장 시 예외 추가 * fix: 불필요 개행 제거 * feat: 외부 일정 종일 판단 수정 * ci: 프론트엔드 패키지 매니저를 yarn으로 변경 * feat: oauth uri를 생성할 때 redirect uri를 외부에서 직접 전달받도록 개선 * feat: Access token을 생성할 때 redirect URI를 함께 보내도록 수정 * fix: 로그인 요청 수정 * refactor: 카테고리 이름 유효성 검사를 위한 상수 분리 * feat: 특정 문자열과 같은지 비교하는 유효성 검사 함수 구현 * feat: 카테고리 이름 유효성 검사 커스텀훅 구현 및 적용 * feat: 구글 캘린더 가져오기를 위한 카테고리 생성 유효성 검사 수정 * feat: 카테고리 생성 시 body에 categoryType 추가 * fix: 일정 제목이 null인 경우 디폴트 값이 들어가도록 수정 * refactor: 디폴트값 수정 * refactor: memo에 notnull 검증 추가 * refactor: 외부로 부터 연동한 카테고리도 삭제 가능하도록 변경 * refactor: 외부 카테고리를 삭제하는 로직의 순서 변경 * refactor: access token 유효성 검사를 페이지에서 분리 * refactor: ExternalCategoryDetailRepository의 불필요한 메서드 제거 * refactor: 변경된 일정 id 타입 대응 * fix: 일정 변경 에러 변경 * feat: 개인정보처리방침 페이지 컴포넌트 구현 * feat: footer 컴포넌트 구현 * style: 개인정보처리방침의 margin 변경 * feat: 카테고리 조회 시 카테고리 타입도 함께 전달하도록 개선 * feat: 구글 연동 일정 편집 및 삭제 권한 해제 * feat: 카테고리과 일정 타입에 따라 구독, 삭제, 편집 권한 개별 부여 * refactor: 툴팁 메세지 상수 수정 * fix: 객체 추가가 불가능한 불변 객체 수정 * fix: 겹치는 복수일정에서 렌더링되지 않는 일정 더보기 에러 수정 * fix: 달력 뷰를 넘어가는 장기 일정의 렌더링 오류 수정 * feat: Period를 다른 Period로 자르는 기능 구현 * feat: 일정 목록을 통해 비어있는 기간 목록을 계산하는 기능 구현 * feat: 카테고리를 통해 해당 카테고리를 구독하는 모든 유저의 기간을 만족하는 일정을 통해 겹치지 않는 기간을 계산하는 기능을 서비스에 구현 * docs: 일정 조율 API 문서 작성 * test: 인수 테스트 작성 * refactor: 컨트롤러 분리 * refactor: SchedulerService 리팩토링 * feat: IntegrationSchedule 대응 * test: CategoryType 대응 * docs: adoc 경로 변경 * chore: TODO 추가 * refactor: 개행 추가 * refactor: 구독ID로 멤버를 찾을 때 MemberRepository 대신 SubscriptionRepository를 사용하도록 개선 * refactor: 구독자 멤버의 ID목록을 반환하도록 메서드 개선 * feat: 중복되는 카테고리 제거 * refactor: isNotOverlapped 가독성 개선 * feat: 날짜뿐만 아니라 시간까지 일정 조율 범위를 조정할 수 있도록 개선 * fix: 일정 수정 시 빈 제목을 넣을 수 있도록 변경 * refactor: 사용하지 않는 dto 삭제 및 검증 어노테이션 추가 * fix: 일정 제목이 null인 경우 디폴트 값이 들어가도록 수정 * fix: 일정 삭제 시 달력에 바로 반영 * feat: 카테고리 타입에 따라 description 추가 * feat: 공백 특수 문자 제거 및 나의 카테고리 목록에도 description 추가 * refactor: react query cache key 상수 분리 * fix: 에러 메시지 조건부 렌더링 * feat: 일정 조율 기능 구현 * feat: 일정 조율 페이지 컴포넌트 구현 * feat: 내비게이션 바에 일정 조율 메뉴 추가 * style: 카테고리 페이지 컴포넌트 스타일 변경 * feat: 시간 형식 변경 * style: 시간 목록의 overflow 스타일 변경 * fix: 시간에서 시작 날짜와 종료 날짜 분리 * fix: 시간 형식 변경 * fix: 카테고리 목록에서 일반 카테고리만 필터링 * fix: 복수 일정의 우선순위 에러 해결 * feat: 구독 카테고리 필터링 시 일정 로딩을 위한 스피너 추가 * refactor: 불필요한 코드 정리 * fix: 프로필 수정 시 카테고리 생성자에 바로 반영 * feat: 입력 필드에 label 추가 * style: label 스타일 수정 * style: 버튼 사이즈 수정 * feat: 일정 제목이 없는 경우 '제목없음' 렌더링 * refactor: 상수 변경 * docs: 자신의 구독 목록 조회 API 문서 추가 * feat: 외부 일정을 포함하여 일정 조율할 수 있도록 개선 * feat: 일정 추가 시 카테고리 디폴트 값 설정 및 스타일 변경 * style: 입력 필드 에러메세지 스타일 수정 * feat: 구글 캘린더를 일정 조율 대상에 포함시키도록 개선 * docs: build.gradle의 소나큐브 코드 커버리지를 위한 설정 추가 * docs: build.gradle의 소나큐브 코드 커버리지를 위한 설정 변경 * docs: build.gradle의 소나큐브 코드 커버리지를 위한 설정 추가변경 * docs: build.gradle의 소나큐브 코드 커버리지를 위한 설정 jacoco 설정변경 * style: 카테고리 페이지 모드 선택 버튼 토글로 변경 * fix: access token 유효성 검사 성공 시의 전역 사이드 바 상태 변경 * fix: 404 페이지 접속 시 access token의 유효성 검사 * fix: 사이드 바 컴포넌트 조건부 렌더링 방식 변경 * fix: 전역 사이드 바 default 상태 변경 * style: 시작 페이지 콘텐츠 수정 * style: 구독 카테고리 목록 스켈레톤 UI 수정 * fix: 누락된 사이드 바 애니메이션 추가 * fix: 구글 캘린더 가져오기 버튼을 사이드 바로 이동 * style: 카테고리 페이지 헤더 스타일 변경 Co-authored-by: hyeonic <[email protected]> Co-authored-by: mat <[email protected]> Co-authored-by: jhy979 <[email protected]> Co-authored-by: jhy979 <[email protected]> Co-authored-by: Daye Lee <[email protected]> Co-authored-by: devHudi <[email protected]> Co-authored-by: koo <[email protected]> Co-authored-by: 구동희 <[email protected]>
1 parent a67eaf6 commit 5eeb3a9

File tree

362 files changed

+35160
-34
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

362 files changed

+35160
-34
lines changed

.github/ISSUE_TEMPLATE/bug-template.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: Bug Template
33
about: 버그를 이슈에 등록한다.
4-
title: ""
4+
title: '이슈의 제목을 입력해주세요!'
55
labels: ''
66
assignees: ''
77
---
@@ -16,4 +16,3 @@ assignees: ''
1616
## 📸 스크린샷
1717

1818
## 👄 참고 사항
19-

.github/ISSUE_TEMPLATE/feature-template.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: Feature Template
33
about: 구현할 기능을 이슈에 등록한다.
4-
title: ""
4+
title: '이슈의 제목을 입력해주세요!'
55
labels: ''
66
assignees: ''
77
---
@@ -17,4 +17,3 @@ assignees: ''
1717
## 📄 참고 사항
1818

1919
## ⏰ 예상 소요 기간
20-

.github/PULL_REQUEST_TEMPLATE.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
- [ ] 🔀 PR 제목의 형식을 잘 작성했나요? e.g. `[feat] PR을 등록한다.`
12
- [ ] 💯 테스트는 잘 통과했나요?
23
- [ ] 🏗️ 빌드는 성공했나요?
34
- [ ] 🧹 불필요한 코드는 제거했나요?
45
- [ ] 💭 이슈는 등록했나요?
56
- [ ] 🏷️ 라벨은 등록했나요?
7+
- [ ] 💻 git rebase를 사용했나요?
68
- [ ] 🌈 알록달록한가요?
79

810
## 작업 내용
@@ -12,4 +14,3 @@
1214
## 주의사항
1315

1416
Closes #{이슈 번호}
15-

.github/workflows/backend-ci.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Backend CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- develop
8+
paths:
9+
- backend/**
10+
- .github/** # Github Actions 작업을 위한 포함
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
16+
defaults:
17+
run:
18+
working-directory: ./backend
19+
20+
steps:
21+
- uses: actions/checkout@v3
22+
23+
- name: Set up JDK 11
24+
uses: actions/setup-java@v3
25+
with:
26+
java-version: "11"
27+
distribution: "temurin"
28+
29+
- name: Grant execute permission for gradlew
30+
run: chmod +x gradlew
31+
32+
- name: Build with Gradle
33+
run: ./gradlew build
34+
35+
- name: Publish Unit Test Results
36+
uses: EnricoMi/publish-unit-test-result-action@v1
37+
if: ${{ always() }}
38+
with:
39+
files: build/test-results/**/*.xml

.github/workflows/frontend-ci.yml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Frontend CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- develop
8+
paths:
9+
- frontend/**
10+
- .github/** # Github Actions 작업을 위한 포함
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
defaults:
16+
run:
17+
working-directory: ./frontend
18+
19+
steps:
20+
- uses: actions/checkout@v2
21+
- uses: actions/setup-node@v2
22+
with:
23+
node-version: "14"
24+
25+
- name: Install node packages
26+
run: npm install
27+
28+
- name: Check lint
29+
run: npm run check-lint
30+
31+
- name: Check prettier
32+
run: npm run check-prettier
33+
34+
- name: Build
35+
run: npm run dev-build
36+
37+
- name: Component test
38+
run: npm run test

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "backend/src/main/resources/config"]
2+
path = backend/src/main/resources/config
3+
url = https://github.com/dallog/config.git

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11
# 2022-dallog
22

3+
## 알록달록🌈 팀원 소개
4+
5+
| Backend | Backend | Backend | Backend | Frontend | Frontend |
6+
| :------------------------------------------: | :------------------------------------------------: | :----------------------------------------------: | :------------------------------------------: | :--------------------------------------------: | :-----------------------------------------: |
7+
| ![](https://github.com/hyeonic.png?size=120) | ![](https://github.com/gudonghee2000.png?size=120) | ![](https://github.com/summerlunaa.png?size=120) | ![](https://github.com/devHudi.png?size=120) | ![](https://github.com/daaaayeah.png?size=120) | ![](https://github.com/jhy979.png?size=120) |
8+
| [매트(최기현)](https://github.com/hyeonic) | [리버(구동희)](https://github.com/gudonghee2000) | [파랑(이하은)](https://github.com/summerlunaa) | [후디(조동현)](https://github.com/devHudi) | [티거(이다예)](https://github.com/daaaayeah) | [나인(장호영)](https://github.com/jhy979) |

backend/.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,9 @@ out/
3535

3636
### VS Code ###
3737
.vscode/
38+
39+
### resources ###
40+
/src/main/resources/static/docs
41+
42+
### logs ###
43+
logs/

backend/build.gradle

+140-11
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,154 @@
11
plugins {
2-
id 'org.springframework.boot' version '2.7.1'
3-
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
4-
id 'java'
2+
id 'org.springframework.boot' version '2.7.1'
3+
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
4+
id 'org.asciidoctor.jvm.convert' version '3.3.2'
5+
id 'org.sonarqube' version '3.3'
6+
id 'java'
7+
id 'jacoco'
58
}
69

710
group = 'com.allog'
811
version = '0.0.1-SNAPSHOT'
912
sourceCompatibility = '11'
1013

14+
ext {
15+
snippetsDir = file('build/generated-snippets')
16+
}
17+
18+
configurations {
19+
asciidoctorExtensions
20+
}
21+
1122
repositories {
12-
mavenCentral()
23+
mavenCentral()
1324
}
1425

1526
dependencies {
16-
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
17-
implementation 'org.springframework.boot:spring-boot-starter-validation'
18-
implementation 'org.springframework.boot:spring-boot-starter-web'
19-
runtimeOnly 'com.h2database:h2'
20-
testImplementation 'org.springframework.boot:spring-boot-starter-test'
27+
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
28+
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
29+
implementation 'org.springframework.boot:spring-boot-starter-validation'
30+
implementation 'org.springframework.boot:spring-boot-starter-web'
31+
32+
runtimeOnly 'mysql:mysql-connector-java'
33+
runtimeOnly 'com.h2database:h2'
34+
35+
testImplementation 'org.springframework.boot:spring-boot-starter-test'
36+
testImplementation 'io.rest-assured:rest-assured:4.4.0'
37+
38+
// JWT를 위한 의존성
39+
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
40+
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
41+
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'
42+
43+
// Restdocs를 위한 의존성
44+
asciidoctorExtensions 'org.springframework.restdocs:spring-restdocs-asciidoctor'
45+
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
46+
47+
// Sonarqube를 위한 의존성
48+
implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
49+
}
50+
51+
test {
52+
outputs.dir snippetsDir
53+
useJUnitPlatform()
54+
finalizedBy 'jacocoTestReport'
55+
}
56+
57+
jacoco {
58+
toolVersion = "0.8.8"
59+
}
60+
61+
jacocoTestReport {
62+
reports {
63+
xml.enabled true
64+
csv.enabled true
65+
html.enabled true
66+
67+
xml.destination file("${buildDir}/jacoco/index.xml")
68+
csv.destination file("${buildDir}/jacoco/index.csv")
69+
html.destination file("${buildDir}/jacoco/index.html")
70+
}
71+
72+
afterEvaluate {
73+
classDirectories.setFrom(
74+
files(classDirectories.files.collect {
75+
fileTree(dir: it, excludes: [
76+
'**/*Application*',
77+
'**/*Exception*',
78+
'**/dto/**',
79+
'**/infrastructure/**',
80+
'**/global/config/**',
81+
'**/BaseEntity*',
82+
'**/ControllerAdvice*',
83+
'**/AuthorizationExtractor*'
84+
])
85+
})
86+
)
87+
}
88+
89+
finalizedBy 'jacocoTestCoverageVerification'
90+
}
91+
92+
jacocoTestCoverageVerification {
93+
violationRules {
94+
rule {
95+
enabled = true
96+
element = "CLASS"
97+
98+
// 모든 클래스 각각 라인 커버리지 75% 만족시 빌드 성공
99+
limit {
100+
counter = 'LINE'
101+
value = 'COVEREDRATIO'
102+
minimum = 0.75
103+
}
104+
105+
excludes = [
106+
'*.*Application',
107+
'*.*Exception',
108+
'*.dto.*',
109+
'*.infrastructure.*',
110+
'*.global.config.*',
111+
'*.BaseEntity',
112+
'*.ControllerAdvice',
113+
'*.AuthorizationExtractor'
114+
]
115+
}
116+
}
117+
}
118+
119+
sonarqube {
120+
properties {
121+
property 'sonar.projectKey', 'dallog'
122+
property "sonar.sources", "src"
123+
property "sonar.language", "java"
124+
property "sonar.sourceEncoding", "UTF-8"
125+
property "sonar.profile", "Sonar way"
126+
property "sonar.java.binaries", "${buildDir}/classes"
127+
property "sonar.test.inclusions", "**/*Test.java"
128+
property 'sonar.exclusions', '**/jacoco/**'
129+
property 'sonar.coverage.exclusions', '**/test/**/*, **/*Application*, **/global/config/**, **/dto/**, **/*Exception*, **/infrastructure/**, **/BaseEntity*, **/ControllerAdvice*, **/AuthorizationExtractor*'
130+
property "sonar.coverage.jacoco.xmlReportPaths", "${buildDir}/jacoco/index.xml"
131+
}
132+
}
133+
134+
asciidoctor {
135+
configurations 'asciidoctorExtensions'
136+
baseDirFollowsSourceFile()
137+
inputs.dir snippetsDir
138+
dependsOn test
139+
}
140+
141+
asciidoctor.doFirst {
142+
delete file('src/main/resources/static/docs')
143+
}
144+
145+
task copyDocument(type: Copy) {
146+
dependsOn asciidoctor
147+
148+
from "${asciidoctor.outputDir}"
149+
into file("src/main/resources/static/docs")
21150
}
22151

23-
tasks.named('test') {
24-
useJUnitPlatform()
152+
bootJar {
153+
dependsOn copyDocument
25154
}

backend/src/docs/asciidoc/auth.adoc

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
== Auth(인증)
2+
3+
=== OAuth 로그인 링크 생성
4+
5+
==== Request
6+
7+
include::{snippets}/auth/link/http-request.adoc[]
8+
9+
==== Path Parameters
10+
11+
include::{snippets}/auth/link/path-parameters.adoc[]
12+
13+
==== Request Parameters
14+
15+
include::{snippets}/auth/link/request-parameters.adoc[]
16+
17+
==== Response
18+
19+
include::{snippets}/auth/link/http-response.adoc[]
20+
21+
==== ResponseFields
22+
23+
include::{snippets}/auth/link/response-fields.adoc[]
24+
25+
=== OAuth 로그인
26+
27+
==== Request
28+
29+
include::{snippets}/auth/token/http-request.adoc[]
30+
31+
==== PathParameters
32+
33+
include::{snippets}/auth/token/path-parameters.adoc[]
34+
35+
==== RequestFields
36+
37+
include::{snippets}/auth/token/request-fields.adoc[]
38+
39+
==== Response
40+
41+
include::{snippets}/auth/token/http-response.adoc[]
42+
43+
=== OAuth 로그인 : Resource Server 에러
44+
45+
==== Request
46+
47+
include::{snippets}/auth/exception/token/http-request.adoc[]
48+
49+
==== PathParameters
50+
51+
include::{snippets}/auth/exception/token/path-parameters.adoc[]
52+
53+
==== RequestFields
54+
55+
include::{snippets}/auth/exception/token/request-fields.adoc[]
56+
57+
==== Response
58+
59+
include::{snippets}/auth/exception/token/http-response.adoc[]

0 commit comments

Comments
 (0)