From 51a7def58191cf28e52d01b44555b95732e0c8a7 Mon Sep 17 00:00:00 2001 From: Jeongmo Seo Date: Tue, 12 Aug 2025 23:39:12 +0900 Subject: [PATCH 1/2] =?UTF-8?q?:sparkles:=20feat:=20=EC=B7=A8=ED=96=A5=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=B4=88=EA=B8=B0=ED=99=94=20API?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DatePreferenceController.java | 9 +++++++++ .../DatePreferenceTestResultRepository.java | 2 ++ .../DatePreferenceTestResultCommandImpl.java | 20 +++++++++++++++++++ ...atePreferenceTestResultCommandService.java | 7 +++++++ 4 files changed, 38 insertions(+) create mode 100644 src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandImpl.java create mode 100644 src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandService.java diff --git a/src/main/java/org/withtime/be/withtimebe/domain/date/preference/controller/DatePreferenceController.java b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/controller/DatePreferenceController.java index fb0a73c..33a1f73 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/date/preference/controller/DatePreferenceController.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/controller/DatePreferenceController.java @@ -12,6 +12,7 @@ import org.withtime.be.withtimebe.domain.date.preference.dto.DatePreferenceResponseDTO; import org.withtime.be.withtimebe.domain.date.preference.entity.enums.PreferenceType; import org.withtime.be.withtimebe.domain.date.preference.service.command.DatePreferenceTestCommandService; +import org.withtime.be.withtimebe.domain.date.preference.service.command.DatePreferenceTestResultCommandService; import org.withtime.be.withtimebe.domain.date.preference.service.query.DatePreferenceDescriptionQueryService; import org.withtime.be.withtimebe.domain.date.preference.service.query.DatePreferenceQuestionQueryService; import org.withtime.be.withtimebe.domain.date.preference.service.query.DatePreferenceTypeRelationQueryService; @@ -25,6 +26,7 @@ public class DatePreferenceController { private final DatePreferenceTestCommandService datePreferenceTestCommandService; + private final DatePreferenceTestResultCommandService datePreferenceTestResultCommandService; private final DatePreferenceTypeRelationQueryService datePreferenceTypeRelationQueryService; private final DatePreferenceDescriptionQueryService datePreferenceDescriptionQueryService; private final DatePreferenceQuestionQueryService datePreferenceQuestionQueryService; @@ -76,4 +78,11 @@ public DefaultResponse findRelationT return DefaultResponse.ok(datePreferenceTypeRelationQueryService.findTypeRelations(type)); } + @Operation(summary = "유형 데이터 초기화 API by 요시", description = "로그인된 사용자의 취향 데이터를 초기화하는 API") + @DeleteMapping + public DefaultResponse resetDatePreferenceData(@AuthenticatedMember Member member) { + datePreferenceTestResultCommandService.resetDatePreferenceData(member); + return DefaultResponse.noContent(); + } + } diff --git a/src/main/java/org/withtime/be/withtimebe/domain/date/preference/repository/DatePreferenceTestResultRepository.java b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/repository/DatePreferenceTestResultRepository.java index d614183..4cc9f3f 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/date/preference/repository/DatePreferenceTestResultRepository.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/repository/DatePreferenceTestResultRepository.java @@ -1,7 +1,9 @@ package org.withtime.be.withtimebe.domain.date.preference.repository; import org.withtime.be.withtimebe.domain.date.preference.entity.DatePreferenceTestResult; +import org.withtime.be.withtimebe.domain.member.entity.Member; public interface DatePreferenceTestResultRepository { DatePreferenceTestResult save(DatePreferenceTestResult datePreferenceTestResult); + void deleteAllByMember(Member member); } diff --git a/src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandImpl.java b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandImpl.java new file mode 100644 index 0000000..2e8a2a4 --- /dev/null +++ b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandImpl.java @@ -0,0 +1,20 @@ +package org.withtime.be.withtimebe.domain.date.preference.service.command; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.withtime.be.withtimebe.domain.date.preference.repository.DatePreferenceTestResultRepository; +import org.withtime.be.withtimebe.domain.member.entity.Member; + +@Service +@Transactional +@RequiredArgsConstructor +public class DatePreferenceTestResultCommandImpl implements DatePreferenceTestResultCommandService { + + private final DatePreferenceTestResultRepository datePreferenceTestResultRepository; + + @Override + public void resetDatePreferenceData(Member member) { + datePreferenceTestResultRepository.deleteAllByMember(member); + } +} diff --git a/src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandService.java b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandService.java new file mode 100644 index 0000000..f303bdd --- /dev/null +++ b/src/main/java/org/withtime/be/withtimebe/domain/date/preference/service/command/DatePreferenceTestResultCommandService.java @@ -0,0 +1,7 @@ +package org.withtime.be.withtimebe.domain.date.preference.service.command; + +import org.withtime.be.withtimebe.domain.member.entity.Member; + +public interface DatePreferenceTestResultCommandService { + void resetDatePreferenceData(Member member); +} From 09be12b746dd5856f066853482f3a7c0bb98ec08 Mon Sep 17 00:00:00 2001 From: Jeongmo Seo Date: Tue, 12 Aug 2025 23:40:26 +0900 Subject: [PATCH 2/2] =?UTF-8?q?:memo:=20docs:=20Swagger=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/controller/MemberController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java b/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java index f801797..2e727c2 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java @@ -25,7 +25,7 @@ public class MemberController { private final MemberCommandService memberCommandService; private final MemberQueryService memberQueryService; - @Operation(summary = "비밀번호 변경 API", description = "현재 비밀번호가 맞으면 새로운 비밀번호로 변경") + @Operation(summary = "비밀번호 변경 API by 요시", description = "현재 비밀번호가 맞으면 새로운 비밀번호로 변경") @ApiResponses({ @ApiResponse(responseCode = "204", description = "비밀번호 변경 성공"), @ApiResponse( @@ -58,7 +58,7 @@ public DefaultResponse changePassword(@AuthenticatedMember Member member, return DefaultResponse.noContent(); } - @Operation(summary = "사용자 정보 변경 API", description = "사용자 정보 변경, 사용자를 쿠키로 인식하여 정보를 변경") + @Operation(summary = "사용자 정보 변경 API by 요시", description = "사용자 정보 변경, 사용자를 쿠키로 인식하여 정보를 변경") @ApiResponses({ @ApiResponse(responseCode = "200", description = "정보 변경 성공"), @ApiResponse( @@ -76,7 +76,7 @@ public DefaultResponse changeInfo(@AuthenticatedMe return DefaultResponse.ok(MemberConverter.toChangeInfo(updatedMember)); } - @Operation(summary = "회원 탈퇴하기 API", description = "로그인된 토큰을 이용하여 회원 탈퇴하는 API") + @Operation(summary = "회원 탈퇴하기 API by 요시", description = "로그인된 토큰을 이용하여 회원 탈퇴하는 API") @ApiResponse(responseCode = "204", description = "회원 탈퇴 성공 (soft delete)") @DeleteMapping public DefaultResponse deleteMember(@AuthenticatedMember Member member) { @@ -84,7 +84,7 @@ public DefaultResponse deleteMember(@AuthenticatedMember Member member) { return DefaultResponse.noContent(); } - @Operation(summary = "사용자 정보 가져오는 API", description = "로그인된 사용자 정보 가져오는 API") + @Operation(summary = "사용자 정보 가져오는 API by 요시", description = "로그인된 사용자 정보 가져오는 API") @ApiResponse(responseCode = "200", description = "사용자 정보를 가져왔습니다.") @GetMapping("/infos") public DefaultResponse getMemberInfo(@AuthenticatedMember Member member) {