From 7dd6188d53bbf0af3fab4174dbbd9c8962b06c24 Mon Sep 17 00:00:00 2001 From: youth Date: Tue, 3 Sep 2024 23:08:26 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9B=90=20=EC=A0=95?= =?UTF-8?q?=EC=B1=85=20=EB=8F=99=EC=9D=98=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csquiz/api/policy/controller/PolicyController.java | 5 +++-- .../csquiz/api/policy/dto/CheckMemberPoliciesRequest.java | 3 --- .../cotato/csquiz/domain/auth/service/PolicyService.java | 8 ++++---- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java b/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java index f80c6f96..e0257db9 100644 --- a/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java +++ b/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java @@ -33,8 +33,9 @@ public ResponseEntity getUnCheckedPolicies(@Authentica @Operation(summary = "특정 정책에 대해 동의 여부 체크 API") @PostMapping("/check") - public ResponseEntity checkPolicies(@RequestBody @Valid CheckMemberPoliciesRequest request){ - policyService.checkPolicies(request); + public ResponseEntity checkPolicies(@RequestBody @Valid CheckMemberPoliciesRequest request, + @AuthenticationPrincipal Long memberId) { + policyService.checkPolicies(memberId, request.policies()); return ResponseEntity.noContent().build(); } diff --git a/src/main/java/org/cotato/csquiz/api/policy/dto/CheckMemberPoliciesRequest.java b/src/main/java/org/cotato/csquiz/api/policy/dto/CheckMemberPoliciesRequest.java index b2cd964f..9da34408 100644 --- a/src/main/java/org/cotato/csquiz/api/policy/dto/CheckMemberPoliciesRequest.java +++ b/src/main/java/org/cotato/csquiz/api/policy/dto/CheckMemberPoliciesRequest.java @@ -2,12 +2,9 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; import java.util.List; public record CheckMemberPoliciesRequest( - @NotNull(message = "체크할 회원의 id는 필수 입니다.") - Long memberId, @NotEmpty(message = "체크할 정책을 입력해주세요") @Valid List policies diff --git a/src/main/java/org/cotato/csquiz/domain/auth/service/PolicyService.java b/src/main/java/org/cotato/csquiz/domain/auth/service/PolicyService.java index 5c5b88b2..3f123863 100644 --- a/src/main/java/org/cotato/csquiz/domain/auth/service/PolicyService.java +++ b/src/main/java/org/cotato/csquiz/domain/auth/service/PolicyService.java @@ -52,10 +52,10 @@ public FindMemberPolicyResponse findUnCheckedPolicies(final Long memberId) { } @Transactional - public void checkPolicies(CheckMemberPoliciesRequest request) { - Member findMember = memberService.findById(request.memberId()); + public void checkPolicies(Long memberId, List policies) { + Member findMember = memberService.findById(memberId); - List policyIds = request.policies().stream() + List policyIds = policies.stream() .map(CheckPolicyRequest::policyId) .toList(); @@ -66,7 +66,7 @@ public void checkPolicies(CheckMemberPoliciesRequest request) { Map policyMap = policyRepository.findAllByIdIn(policyIds).stream() .collect(Collectors.toMap(Policy::getId, Function.identity())); - List memberPolicies = request.policies().stream() + List memberPolicies = policies.stream() .map(policyRequest -> MemberPolicy.of(policyRequest.isChecked(), findMember, policyMap.get(policyRequest.policyId()))) .toList(); From 06b5cf1860eea01168b2b939de464a2b2650e5d8 Mon Sep 17 00:00:00 2001 From: youth Date: Tue, 3 Sep 2024 23:11:28 +0900 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9B=90=20=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=8B=9C=20=ED=95=84=EC=9A=94=20=EC=A0=95=EC=B1=85?= =?UTF-8?q?=20=EB=8F=99=EC=9D=98=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/cotato/csquiz/api/auth/dto/JoinRequest.java | 8 +++++++- .../cotato/csquiz/domain/auth/service/AuthService.java | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/api/auth/dto/JoinRequest.java b/src/main/java/org/cotato/csquiz/api/auth/dto/JoinRequest.java index 9cc7b706..217d0dfc 100644 --- a/src/main/java/org/cotato/csquiz/api/auth/dto/JoinRequest.java +++ b/src/main/java/org/cotato/csquiz/api/auth/dto/JoinRequest.java @@ -1,9 +1,12 @@ package org.cotato.csquiz.api.auth.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; +import java.util.List; +import org.cotato.csquiz.api.policy.dto.CheckPolicyRequest; public record JoinRequest( @Email(message = "올바른 형식의 메일 주소를 입력해주세요.") @@ -16,6 +19,9 @@ public record JoinRequest( String name, @NotNull(message = "전화번호를 입력해주세요.") @Size(min = 11, max = 11, message = "'-'없이 11자리의 전화번호를 입력해주세요.") - String phoneNumber + String phoneNumber, + + @Schema(description = "동의 표시한 정책 목록") + List policies ) { } diff --git a/src/main/java/org/cotato/csquiz/domain/auth/service/AuthService.java b/src/main/java/org/cotato/csquiz/domain/auth/service/AuthService.java index 0dbdf537..4460f668 100644 --- a/src/main/java/org/cotato/csquiz/domain/auth/service/AuthService.java +++ b/src/main/java/org/cotato/csquiz/domain/auth/service/AuthService.java @@ -12,7 +12,6 @@ import org.cotato.csquiz.api.auth.dto.ReissueResponse; import org.cotato.csquiz.api.auth.dto.SendEmailRequest; import org.cotato.csquiz.api.member.dto.MemberEmailResponse; -import org.cotato.csquiz.api.member.dto.MemberInfo; import org.cotato.csquiz.common.config.jwt.BlackListRepository; import org.cotato.csquiz.common.config.jwt.JwtTokenProvider; import org.cotato.csquiz.common.config.jwt.RefreshToken; @@ -20,9 +19,9 @@ import org.cotato.csquiz.common.config.jwt.Token; import org.cotato.csquiz.common.error.ErrorCode; import org.cotato.csquiz.common.error.exception.AppException; -import org.cotato.csquiz.domain.auth.enums.EmailType; import org.cotato.csquiz.domain.auth.constant.EmailConstants; import org.cotato.csquiz.domain.auth.entity.Member; +import org.cotato.csquiz.domain.auth.enums.EmailType; import org.cotato.csquiz.domain.auth.repository.MemberRepository; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -39,6 +38,7 @@ public class AuthService { private static final int EXPOSED_LENGTH = 4; private static final String REFRESH_TOKEN = "refreshToken"; + private final PolicyService policyService; private final MemberRepository memberRepository; private final ValidateService validateService; private final BCryptPasswordEncoder bCryptPasswordEncoder; @@ -69,6 +69,8 @@ public JoinResponse createLoginInfo(JoinRequest request) { .build(); memberRepository.save(newMember); + policyService.checkPolicies(newMember.getId(), request.policies()); + return JoinResponse.from(newMember); } From 09c2f860705edf9e30d4a0c9a414800935321bfd Mon Sep 17 00:00:00 2001 From: youth Date: Tue, 3 Sep 2024 23:11:51 +0900 Subject: [PATCH 3/4] =?UTF-8?q?docs:=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20API?= =?UTF-8?q?=20=EB=AA=85=EC=84=B8=20=EA=B5=AC=EC=B2=B4=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cotato/csquiz/api/policy/controller/PolicyController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java b/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java index e0257db9..1a218551 100644 --- a/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java +++ b/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java @@ -39,7 +39,7 @@ public ResponseEntity checkPolicies(@RequestBody @Valid CheckMemberPolicie return ResponseEntity.noContent().build(); } - @Operation(summary = "회원 가입 시 정책 목록 반환 API") + @Operation(summary = "회원 가입 시 보여줘야 할 정책 목록 반환 API") @GetMapping public ResponseEntity getPolicies() { return ResponseEntity.ok().body(policyService.findPolicies()); From 7f76030b54a4b1d1ec2f1d0531d43868c7f3b1f7 Mon Sep 17 00:00:00 2001 From: youth Date: Tue, 3 Sep 2024 23:12:05 +0900 Subject: [PATCH 4/4] =?UTF-8?q?style:=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20import=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cotato/csquiz/api/policy/controller/PolicyController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java b/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java index 1a218551..ec41b0af 100644 --- a/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java +++ b/src/main/java/org/cotato/csquiz/api/policy/controller/PolicyController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @Tag(name = "회원 정책 API")