Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
475d599
hotfix(CookieUtils): addCookieToResponse 수정
ssosee Jun 29, 2025
1a7ef3b
feat: 변경 가능 닉네임 조회 API
yu-so-young2 Jun 29, 2025
e85fed3
fix: 테스트코드 패키지 변경
yu-so-young2 Jun 29, 2025
fddc7c9
fix: 테스트코드 및 mypage 하위로 이동
yu-so-young2 Jun 29, 2025
a8e8f9a
feat(GuestPickCommentServiceV2): registerPickComment 개발
ssosee Jun 29, 2025
168b841
Merge pull request #162 from dreamyPatisiel/DP-536
ssosee Jul 1, 2025
c4116f0
Merge branch 'develop' into DP-525
ssosee Jul 2, 2025
8972224
fix(PickComment): PickComment static 메소드 수정
ssosee Jul 2, 2025
869e218
feat: 닉네임 변경 API
yu-so-young2 Jul 3, 2025
5205a0b
fix: 닉네임 변경 테스트코드
yu-so-young2 Jul 3, 2025
f24a345
Merge pull request #163 from dreamyPatisiel/DP-525
ssosee Jul 4, 2025
240fbd2
fix(nickname): 24시간 이내 변경 정책 적용
yu-so-young2 Jul 6, 2025
7240373
feat(GuestPickCommentServiceV2): 익명회원 답글 작성 서비스 개발 및 테스트 코드 구현
ssosee Jul 6, 2025
e5ebd34
document(PickCommentControllerDocsTest): 픽픽픽 답글 작성 API documentation …
ssosee Jul 6, 2025
15addc2
fix(nickname): 코드리뷰 반영
yu-so-young2 Jul 6, 2025
beb3ad5
Merge pull request #164 from dreamyPatisiel/DP-535
ssosee Jul 6, 2025
c084080
feat(nickname): 닉네임 변경 가능 여부 API
yu-so-young2 Jul 6, 2025
e94282c
docs(nickname): RestDocs 누락 추가
yu-so-young2 Jul 6, 2025
9ee885c
feat(GuestPickCommentServiceV2): 익명회원 픽픽픽 댓글/답글 수정 서비스 개발 및 테스트 코드 작성
ssosee Jul 6, 2025
7dbb2d3
document(PickCommentControllerDocsTest): 픽픽픽 댓글/답글 수정 API 익명회원 관련 문서 수정
ssosee Jul 6, 2025
8e278ff
Merge pull request #167 from dreamyPatisiel/DP-538
ssosee Jul 6, 2025
9b63b60
fix(PR): 코드 리뷰 반영
ssosee Jul 6, 2025
4b3dd8c
Merge pull request #165 from dreamyPatisiel/DP-525
yu-so-young2 Jul 6, 2025
16ad5bc
Merge branch 'develop' into DP-526
ssosee Jul 6, 2025
be2ed0e
fix(PR): 코드 리뷰 반영
ssosee Jul 6, 2025
4874e96
Merge branch 'develop' into DP-526
ssosee Jul 6, 2025
63b8f1d
Merge pull request #166 from dreamyPatisiel/DP-526
ssosee Jul 6, 2025
dbb536d
fix(login): 로그인 시 신규 회원 여부 쿠키에 포함
yu-so-young2 Jul 9, 2025
893ca21
fix(PickCommentService): deletePickComment
ralph-teuida Jul 9, 2025
5f94899
Merge pull request #168 from dreamyPatisiel/DP-537
ssosee Jul 12, 2025
99b986a
fix(PickCommentControllerDocsTest): 픽픽픽 댓글/답글 삭제 API 문서 수정
ssosee Jul 12, 2025
608cf3d
fix(nickname): 닉네임 변경 API 응답 변경(변경된 닉네임 문자열 추가)
yu-so-young2 Jul 13, 2025
574f2ab
Merge pull request #169 from dreamyPatisiel/DP-527
yu-so-young2 Jul 13, 2025
849d849
feat(PickCommentService): findPickComments, findPickBestComments 수정
ssosee Jul 13, 2025
41d1239
feat(PickCommentControllerDocsTest): 댓글 조회, 베스트 댓글 조회 테스트 코드에 익명회원 관련…
ssosee Jul 13, 2025
3060e55
fix(PickCommentService): deletePickComment
ralph-teuida Jul 9, 2025
a083714
fix(PickCommentControllerDocsTest): 픽픽픽 댓글/답글 삭제 API 문서 수정
ssosee Jul 12, 2025
8c550f1
feat(PickCommentService): findPickComments, findPickBestComments 수정
ssosee Jul 13, 2025
beec8e7
Merge branch 'develop' into DP-543
ssosee Jul 13, 2025
a6412b3
Merge remote-tracking branch 'origin/develop' into DP-543
ssosee Jul 13, 2025
2099598
Merge remote-tracking branch 'origin/DP-543' into DP-543
ssosee Jul 13, 2025
2189d64
Merge pull request #170 from dreamyPatisiel/DP-535
ssosee Jul 15, 2025
ad176e2
fix(PR): PickRepliedCommentsResponse 수정
ralph-teuida Jul 19, 2025
589c369
Merge pull request #171 from dreamyPatisiel/DP-543
yu-so-young2 Jul 20, 2025
91bdfc3
hotfix(GuestPickCommentServiceV2): deletePickComment 수정
ralph-teuida Jul 20, 2025
77c4526
feat(GuestTechCommentServiceV2): 기술블로그 익명회원 댓글 조회 수정
ralph-teuida Jul 20, 2025
939c004
fix(dockerfile): prod 환경 핀포인트 제거
yu-so-young2 Jul 22, 2025
b4cdf09
Merge pull request #172 from dreamyPatisiel/cherry-pick/docker-prod
yu-so-young2 Jul 22, 2025
9319cf1
feat(GuestTechCommentServiceV2): 기술블로그 익명회원 댓글 조회 테스트 코드 작성중
ralph-teuida Jul 22, 2025
8baba41
feat(GuestTechCommentServiceV2): 댓글 조회, 베스트 댓글 조회 테스트 코드에 익명회원 관련 테스트…
ssosee Jul 23, 2025
3ca3dc7
fix(nickname): 회원 닉네임 변경 가능 시간 환경변수화
yu-so-young2 Jul 23, 2025
4211003
fix(nickname): long -> int 타입 불일치 수정
yu-so-young2 Jul 23, 2025
435899d
docs(TechArticleCommentControllerDocsTest): 댓글 조회, 베스트 댓글 조회 테스트 코드에 …
ssosee Jul 23, 2025
b1a911b
fix(nickname): 현재 시간 외부에서 주입받도록 수정
yu-so-young2 Jul 27, 2025
0be7720
Merge pull request #175 from dreamyPatisiel/DP-544
yu-so-young2 Jul 27, 2025
60930c9
fix(nickname): DEV 환경 변경 가능 시간 1분 적용
yu-so-young2 Jul 27, 2025
56fcafa
Merge pull request #174 from dreamyPatisiel/DP-546
ssosee Jul 27, 2025
4231e9e
feat(GuestTechCommentServiceV2): registerMainTechComment
ssosee Jul 27, 2025
abd8258
feat(TechArticleCommentController): 기술블로그 익명 회원 댓글 작성 개발
ssosee Jul 27, 2025
7b4425e
feat(GuestTechCommentServiceV2): 기술블로그 익명 회원 답글 작성 개발 및 테스트 코드 작성
ssosee Jul 30, 2025
5f0f87d
docs(tech-article-comment): 기술블로그 답글 작성 API 문서 수정
ssosee Jul 30, 2025
48c8ada
fix(GuestTechCommentServiceV2): 익명회원 기술블로그 댓글/답글 수정 개발 및 테스트 코드 작성
ssosee Jul 31, 2025
289fb92
Merge pull request #176 from dreamyPatisiel/DP-528
yu-so-young2 Jul 31, 2025
b7b089e
fix(PR): 리뷰 내용 반영
ssosee Aug 2, 2025
dc19c59
feat(GuestTechCommentServiceV2): 익명회원 기술블로그 댓글 삭제 기능 추가 및 테스트 코드 작성
ssosee Aug 3, 2025
a805163
Merge pull request #177 from dreamyPatisiel/DP-529
yu-so-young2 Aug 6, 2025
e843aed
Merge pull request #178 from dreamyPatisiel/DP-530
yu-so-young2 Aug 6, 2025
92b6a20
Merge pull request #179 from dreamyPatisiel/DP-531
yu-so-young2 Aug 6, 2025
d0b6c07
fix(gradle): add dependency mysql
ssosee Aug 10, 2025
b266128
Merge pull request #180 from dreamyPatisiel/DP-551
yu-so-young2 Aug 10, 2025
35563a2
feat(CommentResponseUtil): getCommentByTechCommentStatus
ssosee Aug 13, 2025
09a372f
refactor(TokenController): remove redundant import comments
ssosee Aug 13, 2025
a9e4c3b
👍 Merge pull request #181 from dreamyPatisiel/DP-552
yu-so-young2 Aug 13, 2025
f166817
Merge pull request #182 from dreamyPatisiel/DP-555
yu-so-young2 Aug 17, 2025
101f66a
fix(keyword): 검색어 자동완성 API
yu-so-young2 Aug 13, 2025
4ef52bf
test(keyword): 검색어 자동완성 API
yu-so-young2 Aug 17, 2025
fd5b878
test(keyword): MySQL 테스트 컨테이너 분리(재사용 하기 위함)
yu-so-young2 Aug 17, 2025
bb95ce7
fix(keyword): local에서 검색어 자동완성 기능 호출 불가
yu-so-young2 Aug 17, 2025
c4aa514
fix(keyword): test 실패 수정
yu-so-young2 Aug 17, 2025
8b03c34
fix(keyword): 코드리뷰 반영
yu-so-young2 Aug 19, 2025
92209e4
Merge pull request #184 from dreamyPatisiel/DP-554
ssosee Aug 19, 2025
cc3726e
feat(MemberService): findMyPickMain에 totalElements 필드 추가
ssosee Aug 24, 2025
3d22237
Merge branch 'develop' into DP-556
yu-so-young2 Aug 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions src/docs/asciidoc/api/mypage/can-change-nickname.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[[CanChangeNickname]]
== 닉네임 변경 가능 여부 API(GET: /devdevdev/api/v1/mypage/nickname/changeable)
* 회원은 닉네임 변경 가능 여부를 확인할 수 있다.
* 비회원은 닉네임 변경 가능 여부를 확인할 수 없다.

=== 정상 요청/응답
==== HTTP Request
include::{snippets}/can-change-nickname/http-request.adoc[]
==== HTTP Request Header Fields
include::{snippets}/can-change-nickname/request-headers.adoc[]

==== HTTP Response
include::{snippets}/can-change-nickname/http-response.adoc[]
==== HTTP Response Fields
include::{snippets}/can-change-nickname/response-fields.adoc[]

=== 예외
==== HTTP Response
include::{snippets}/not-found-member-exception/response-body.adoc[]
22 changes: 22 additions & 0 deletions src/docs/asciidoc/api/mypage/change-nickname.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[[ChangeNickname]]
== 닉네임 변경 API(PATCH: /devdevdev/api/v1/mypage/nickname)
* 회원은 닉네임을 변경할 수 있다.
* 비회원은 닉네임을 변경할 수 없다.

=== 정상 요청/응답
==== HTTP Request
include::{snippets}/change-nickname/http-request.adoc[]
==== HTTP Request Header Fields
include::{snippets}/change-nickname/request-headers.adoc[]
==== HTTP Request Fields
include::{snippets}/change-nickname/request-fields.adoc[]

==== HTTP Response
include::{snippets}/change-nickname/http-response.adoc[]
==== HTTP Response Fields
include::{snippets}/change-nickname/response-fields.adoc[]

=== 예외
==== HTTP Response
include::{snippets}/not-found-member-exception/response-body.adoc[]
include::{snippets}/change-nickname-within-24hours-exception/response-body.adoc[]
3 changes: 3 additions & 0 deletions src/docs/asciidoc/api/mypage/mypage.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ include::exit-survey.adoc[]
include::record-exit-survey.adoc[]
include::comment-get.adoc[]
include::subscribed-companies.adoc[]
include::random-nickname.adoc[]
include::change-nickname.adoc[]
include::can-change-nickname.adoc[]
20 changes: 20 additions & 0 deletions src/docs/asciidoc/api/mypage/random-nickname.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[[GetRandomNickname]]
== 랜덤 닉네임 생성 API(GET: /devdevdev/api/v1/mypage/nickname/random)
* 회원은 랜덤 닉네임을 생성할 수 있다.
* 비회원은 랜덤 닉네임을 생성할 수 없다.

=== 정상 요청/응답
==== HTTP Request
include::{snippets}/random-nickname/http-request.adoc[]
==== HTTP Request Header Fields
include::{snippets}/random-nickname/request-headers.adoc[]

==== HTTP Response
include::{snippets}/random-nickname/http-response.adoc[]
==== HTTP Response Fields
include::{snippets}/random-nickname/response-fields.adoc[]


=== 예외
==== HTTP Response
include::{snippets}/not-found-member-exception/response-body.adoc[]
6 changes: 4 additions & 2 deletions src/docs/asciidoc/api/pick-commnet/pick-comment-delete.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
== 픽픽픽 댓글/답글 삭제 API(DELETE: /devdevdev/api/v1/picks/{pickId}/comments/{pickCommentId})

* 픽픽픽 댓글/답글을 삭제한다.
* 회원 본인이 작성한 픽픽픽 댓글/답글만 삭제 할 수 있다.
* 본인이 작성한 픽픽픽 댓글/답글만 삭제 할 수 있다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.
* 삭제된 댓글/답글을 삭제 할 수 없다.
* ##어드민 권한을 가진 회원은 모든 댓글/답글을 삭제##할 수 있다.

Expand Down Expand Up @@ -34,7 +36,7 @@ include::{snippets}/delete-pick-comment/response-fields.adoc[]

* `픽픽픽 댓글이 없습니다.`: 픽픽픽 댓글이 존재하지 않거나 본인이 작성하지 않았거나 픽픽픽 댓글 삭제된 경우
* `승인 상태가 아닌 픽픽픽에는 댓글을 삭제할 수 없습니다.`: 픽픽픽이 승인 상태가 아닌 경우
* `익명 회원은 사용할 수 없는 기능 입니다.`: 익명 회원인 경우
* `회원을 찾을 수 없습니다.`: 회원이 존재하지 않는 경우
* `익명 사용자가 아닙니다. 잘못된 메소드 호출 입니다.`: 회원이 익명 회원 메소드를 호출한 경우

include::{snippets}/delete-pick-comment-not-found-exception/response-body.adoc[]
6 changes: 4 additions & 2 deletions src/docs/asciidoc/api/pick-commnet/pick-comment-modify.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
== 픽픽픽 댓글/답글 수정 API(PATCH: /devdevdev/api/v1/picks/{pickId}/comments/{pickCommentId})

* 픽픽픽 댓글/답글을 수정한다.
* 회원 본인이 작성한 픽픽픽 댓글/답글을 수정 할 수 있다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.
* 회원 또는 익명회원 본인이 작성한 픽픽픽 댓글/답글 만 수정 할 수 있다.
* 픽픽픽 공개 여부는 수정 할 수 없다.
* 삭제된 댓글/답글을 수정 할 수 없다.

Expand Down Expand Up @@ -39,7 +41,7 @@ include::{snippets}/modify-pick-comment/response-fields.adoc[]
* `내용을 작성해주세요.`: 댓글(contents)을 작성하지 않는 경우(공백 이거나 빈문자열)
* `픽픽픽 댓글이 없습니다.`: 픽픽픽 댓글이 존재하지 않거나 본인이 작성하지 않았거나 픽픽픽 댓글 삭제된 경우
* `승인 상태가 아닌 픽픽픽에는 댓글을 수정할 수 없습니다.`: 픽픽픽이 승인 상태가 아닌 경우
* `익명 회원은 사용할 수 없는 기능 입니다.`: 익명 회원인 경우
* `회원을 찾을 수 없습니다.`: 회원이 존재하지 않는 경우
* `익명 사용자가 아닙니다. 잘못된 메소드 호출 입니다.`: 회원이 익명 회원 메소드를 호출한 경우

include::{snippets}/modify-pick-comment-bind-exception/response-body.adoc[]
6 changes: 4 additions & 2 deletions src/docs/asciidoc/api/pick-commnet/pick-comment-register.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
== 픽픽픽 댓글 작성 API(POST: /devdevdev/api/v1/picks/{pickId}/comments)

* 픽픽픽 댓글을 작성한다.
* 회원만 픽픽픽 댓글을 작성 할 수 있다.
* 픽픽픽 댓글을 작성 할 수 있다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.

=== 정상 요청/응답

Expand Down Expand Up @@ -39,7 +41,7 @@ include::{snippets}/register-pick-comment/response-fields.adoc[]
* `픽픽픽 게시글이 없습니다.`: 픽픽픽 게시글이 존재하지 않는 경우
* `승인 상태가 아닌 픽픽픽에는 댓글을 작성할 수 없습니다.`: 픽픽픽이 승인 상태가 아닌 경우
* `투표한 픽픽픽 선택지가 존재하지 않습니다.`: 투표한 픽픽픽 선택지가 존재하지 않는 경우
* `익명 회원은 사용할 수 없는 기능 입니다.`: 익명 회원인 경우
* `회원을 찾을 수 없습니다.`: 회원이 존재하지 않는 경우
* `익명 사용자가 아닙니다. 잘못된 메소드 호출 입니다.`: 회원이 익명 회원 메소드를 호출한 경우

include::{snippets}/register-pick-comment-bind-exception-pick-vote-public-is-null/response-body.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
== 픽픽픽 답글 작성 API(POST: /devdevdev/api/v1/picks/{pickId}/comments/{pickOriginParentCommentId}/{pickParentCommentId})

* 픽픽픽 답글을 작성한다.
* 회원만 픽픽픽 답글을 작성 할 수 있다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.
* #픽픽픽 댓글이 삭제 상태# 이면 답글을 작성 할 수 없다.
* 최초 댓글에 대한 답글을 작성할 경우 `pickCommentOriginParentId` 값과 `pickParentCommentId` 값이 동일하다.

Expand Down Expand Up @@ -40,7 +41,7 @@ include::{snippets}/register-pick-comment-reply/response-fields.adoc[]
* `픽픽픽 댓글이 없습니다.`: 픽픽픽 댓글이 존재하지 않는 경우
* `삭제된 픽픽픽 댓글에는 답글을 작성할 수 없습니다.`: 픽픽픽 댓글이 삭제된 경우
* `승인 상태가 아닌 픽픽픽에는 답글을 작성할 수 없습니다.`: 픽픽픽이 승인 상태가 아닌 경우
* `익명 회원은 사용할 수 없는 기능 입니다.`: 익명 회원인 경우
* `회원을 찾을 수 없습니다.`: 회원이 존재하지 않는 경우
* `익명 사용자가 아닙니다. 잘못된 메소드 호출 입니다.`: 회원이 익명 회원 메소드를 호출한 경우

include::{snippets}/register-pick-comment-reply-bind-exception/response-body.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
== 기술블로그 댓글 삭제 API(DELETE: /devdevdev/api/v1/articles/{techArticleId}/comments/{techCommentId})

* 기술블로그 댓글을 삭제한다.
* 회원 본인이 작성한 기술블로그 댓글을 삭제할 수 있다.
* 본인이 작성한 기술블로그 댓글을 삭제할 수 있다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.
* 어드민 권한을 가진 회원은 모든 댓글을 삭제할 수 있다.

=== 정상 요청/응답
Expand Down Expand Up @@ -33,7 +35,7 @@ include::{snippets}/delete-tech-article-comments/response-fields.adoc[]

* `존재하지 않는 기술블로그입니다.`: 기술블로그가 존재하지 않는 경우
* `존재하지 않는 기술블로그 댓글입니다`: 기술블로그 댓글이 존재하지 않거나, 삭제된 댓글이거나, 본인이 작성한 댓글이 아닐 경우
* `익명 회원은 사용할 수 없는 기능 입니다.`: 익명 회원인 경우
* `회원을 찾을 수 없습니다.`: 회원이 존재하지 않는 경우
* `익명 사용자가 아닙니다. 잘못된 메소드 호출 입니다.`: 회원이 익명 회원 메소드를 호출한 경우

include::{snippets}/delete-tech-article-comments-not-found-exception/response-body.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
== 기술블로그 댓글 수정 API(PATCH: /devdevdev/api/v1/articles/{techArticleId}/comments/{techCommentId})

* 기술블로그 댓글을 수정한다.
* 회원 본인이 작성한 기술블로그 댓글을 수정할 수 있다.
* 삭제된 댓글을 수정할 수 없다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.
* 회원 또는 익명회원 본인이 작성한 기술블로그 댓글/답글 만 수정 할 수 있다.
* 삭제된 댓글/답글을 수정할 수 없다.

=== 정상 요청/응답

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[[Tech-Article-Comments-Register]]
== 기술블로그 댓글 작성 API(POST: /devdevdev/api/v1/articles/{techArticleId}/comments)

* 회원은 기술블로그에 댓글을 작성할 수 있다.
* 익명회원은 댓글을 작성할 수 없다.
* 기술블로그에 댓글을 작성할 수 있다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.

=== 정상 요청/응답

Expand Down Expand Up @@ -36,10 +37,7 @@ include::{snippets}/tech-article-comments/response-fields.adoc[]

* `댓글 내용을 작성해주세요.`: 댓글(contents)을 작성하지 않는 경우(공백 이거나 빈문자열)
* `회원을 찾을 수 없습니다.`: 회원 정보가 없을 경우
* `익명 회원은 사용할 수 없는 기능 입니다.`: 익명 회원이 사용할 수 없는 기능일 경우
* `존재하지 않는 기술블로그입니다.`: 기술블로그가 존재하지 않는 경우
* `익명 사용자가 아닙니다. 잘못된 메소드 호출 입니다.`: 회원이 익명 회원 메소드를 호출한 경우

include::{snippets}/tech-article-comments-anonymous-exception/response-body.adoc[]
include::{snippets}/tech-article-comments-not-found-member-exception/response-body.adoc[]
include::{snippets}/tech-article-comments-not-found-tech-article-exception/response-body.adoc[]
include::{snippets}/tech-article-comments-null-exception/response-body.adoc[]
include::{snippets}/tech-article-comments-not-found-member-exception/response-body.adoc[]
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[[Tech-Article-Reply-Register]]
== 기술블로그 답글 작성 API(POST: /devdevdev/api/v1/articles/{techArticleId}/comments/{originParentTechCommentId}/{parentTechCommentId}

* 회원은 기술블로그에 댓글에 답글을 작성할 수 있다.
* 익명회원은 답글을 작성할 수 없다.
* 기술블로그에 댓글에 답글을 작성할 수 있다.
** 회원인 경우 토큰을 `Authorization` 헤더에 포함시켜야 한다.
** 익명 회원인 경우 `Anonymous-Member-Id` 헤더에 익명 회원 아이디를 포함시켜야 한다.
* 삭제된 댓글에는 답글을 작성할 수 없다.
* 최초 댓글에 대한 답글을 작성할 경우 `techCommentOriginParentId` 값과 `techParentCommentId` 값이 동일하다.

Expand Down Expand Up @@ -40,5 +41,6 @@ include::{snippets}/register-tech-article-reply/response-fields.adoc[]
* `회원을 찾을 수 없습니다.`: 회원 정보가 없을 경우
* `익명 회원은 사용할 수 없는 기능 입니다.`: 익명 회원이 사용할 수 없는 기능일 경우
* `존재하지 않는 기술블로그입니다.`: 기술블로그가 존재하지 않는 경우
* `익명 사용자가 아닙니다. 잘못된 메소드 호출 입니다.`: 회원이 익명 회원 메소드를 호출한 경우

include::{snippets}/register-tech-article-reply-null-exception/response-body.adoc[]
9 changes: 3 additions & 6 deletions src/main/java/com/dreamypatisiel/devdevdev/LocalInitData.java
Original file line number Diff line number Diff line change
Expand Up @@ -208,15 +208,12 @@ private List<Bookmark> createBookmarks(Member member, List<TechArticle> techArti
private List<TechArticle> createTechArticles(Map<Long, Company> companyIdMap) {
List<TechArticle> techArticles = new ArrayList<>();
Iterable<ElasticTechArticle> elasticTechArticles = elasticTechArticleRepository.findTop10By();
int count = 0;
for (ElasticTechArticle elasticTechArticle : elasticTechArticles) {
count++;
Company company = companyIdMap.get(elasticTechArticle.getCompanyId());
if (company == null) {
log.info("company가 null 이다. elasticTechArticleId={} count={}", elasticTechArticle.getId(), count);
if (company != null) {
TechArticle techArticle = TechArticle.createTechArticle(elasticTechArticle, company);
techArticles.add(techArticle);
}
TechArticle techArticle = TechArticle.createTechArticle(elasticTechArticle, company);
techArticles.add(techArticle);
}
return techArticles;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,34 @@ public class AnonymousMember extends BasicTime {
@Column(length = 30, nullable = false, unique = true)
private String anonymousMemberId;

private String nickname;

@Builder
private AnonymousMember(String anonymousMemberId) {
this.anonymousMemberId = anonymousMemberId;
}

public static AnonymousMember create(String anonymousMemberId) {
public static AnonymousMember create(String anonymousMemberId, String nickname) {
AnonymousMember anonymousMember = new AnonymousMember();
anonymousMember.anonymousMemberId = anonymousMemberId;
anonymousMember.nickname = nickname;

return anonymousMember;
}

public boolean isEqualAnonymousMemberId(Long id) {
return this.id.equals(id);
}

public boolean hasNickName() {
return nickname != null && !nickname.isBlank();
}

public void changeNickname(String nickname) {
this.nickname = nickname;
}

public boolean isEqualsId(Long id) {
return this.id.equals(id);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import lombok.AccessLevel;
Expand Down Expand Up @@ -96,6 +97,8 @@ public class Member extends BasicTime {

private LocalDateTime deletedAt;

private LocalDateTime nicknameUpdatedAt;

@OneToMany(mappedBy = "member")
private List<InterestedCompany> interestedCompanies = new ArrayList<>();

Expand All @@ -110,7 +113,7 @@ public class Member extends BasicTime {

@OneToMany(mappedBy = "member")
private List<TechArticleRecommend> recommends = new ArrayList<>();

public Member(Long id) {
this.id = id;
}
Expand Down Expand Up @@ -187,4 +190,14 @@ public void deleteMember(LocalDateTime now) {
this.isDeleted = true;
this.deletedAt = now;
}

public void changeNickname(String nickname, LocalDateTime now) {
this.nickname = new Nickname(nickname);
this.nicknameUpdatedAt = now;
}

public boolean canChangeNickname(int restrictionMinutes, LocalDateTime now) {
return nicknameUpdatedAt == null
|| ChronoUnit.MINUTES.between(nicknameUpdatedAt, now) >= restrictionMinutes;
}
}
Loading