From c41cc9acf60ab07db7daa0d5ab8962e1c6fa7166 Mon Sep 17 00:00:00 2001 From: dayeong Date: Sun, 29 Dec 2024 17:59:44 +0900 Subject: [PATCH] =?UTF-8?q?#284=20Refactor:=20Member=EC=97=90=20=20Provide?= =?UTF-8?q?r=20=EC=86=8D=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/converter/MemberConverter.java | 15 +++------ .../drinkeg/drinkeg/member/domain/Member.java | 4 +++ .../drinkeg/member/enums/Provider.java | 33 +++++++++++++++++++ .../drinkeg/drinkeg/member/enums/Role.java | 10 ------ .../apple/appleService/AppleLoginService.java | 2 +- .../kakao/kakaoService/KakaoLoginService.java | 2 +- 6 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/drinkeg/drinkeg/member/enums/Provider.java diff --git a/src/main/java/com/drinkeg/drinkeg/member/converter/MemberConverter.java b/src/main/java/com/drinkeg/drinkeg/member/converter/MemberConverter.java index c74ea7df..710c63ff 100644 --- a/src/main/java/com/drinkeg/drinkeg/member/converter/MemberConverter.java +++ b/src/main/java/com/drinkeg/drinkeg/member/converter/MemberConverter.java @@ -4,6 +4,7 @@ import com.drinkeg.drinkeg.member.dto.MemberResponseDTO; import com.drinkeg.drinkeg.dto.loginDTO.commonDTO.UserDTO; import com.drinkeg.drinkeg.member.dto.MemberBasicInfoResponseDTO; +import com.drinkeg.drinkeg.member.enums.Provider; import com.drinkeg.drinkeg.member.enums.Role; import org.springframework.stereotype.Component; @@ -13,25 +14,18 @@ @Component public class MemberConverter { - public Member toAppleMember(String username, Map claims) { + public Member toOAuthMember(String username, String email, String provider) { return Member.builder() .username(username) - .email((String) claims.get("email")) // email 값을 claims에서 추출 - .role(Role.USER) - .isFirst(true) - .build(); - } - - public Member toKakaoMember(String kakaoname, String email ) { - return Member.builder() - .username(kakaoname) .email(email) .role(Role.USER) + .provider(Provider.fromValue(provider)) .isFirst(true) .build(); } + public static MemberBasicInfoResponseDTO toMemberBasicInfoResponseDTO(Member member) { return MemberBasicInfoResponseDTO.builder() @@ -45,6 +39,7 @@ public Member toMember(String username, String password, boolean isBoolean){ .username(username) .password(password) .role(Role.USER) + .provider(Provider.DRINKEG) .isFirst(isBoolean) .build(); } diff --git a/src/main/java/com/drinkeg/drinkeg/member/domain/Member.java b/src/main/java/com/drinkeg/drinkeg/member/domain/Member.java index 02ebbbb1..9cfa466a 100644 --- a/src/main/java/com/drinkeg/drinkeg/member/domain/Member.java +++ b/src/main/java/com/drinkeg/drinkeg/member/domain/Member.java @@ -2,6 +2,7 @@ import com.drinkeg.drinkeg.converter.StringListConverter; +import com.drinkeg.drinkeg.member.enums.Provider; import com.drinkeg.drinkeg.member.enums.Role; import com.drinkeg.drinkeg.tastingNote.domain.TastingNote; import jakarta.persistence.*; @@ -28,6 +29,9 @@ public class Member { @Enumerated(EnumType.STRING) private Role role; + @Enumerated(EnumType.STRING) + private Provider provider; + private String username; private String password; diff --git a/src/main/java/com/drinkeg/drinkeg/member/enums/Provider.java b/src/main/java/com/drinkeg/drinkeg/member/enums/Provider.java new file mode 100644 index 00000000..9653f793 --- /dev/null +++ b/src/main/java/com/drinkeg/drinkeg/member/enums/Provider.java @@ -0,0 +1,33 @@ +package com.drinkeg.drinkeg.member.enums; + + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.hibernate.AssertionFailure; + +@Getter +@RequiredArgsConstructor +public enum Provider { + + KAKAO("Kakao"), + APPLE("Apple"), + DRINKEG("Drinkeg"); + + private final String value; + + @Override + public String toString() { + return this.value; + } + + public static Provider fromValue(String value) { + for (Provider provider : Provider.values()) { + if (provider.value.equalsIgnoreCase(value)) { + return provider; + } + } + throw new IllegalArgumentException("No enum constant " + Provider.class.getCanonicalName() + "." + value); + } + + +} diff --git a/src/main/java/com/drinkeg/drinkeg/member/enums/Role.java b/src/main/java/com/drinkeg/drinkeg/member/enums/Role.java index 6d5d31cc..2fad53c4 100644 --- a/src/main/java/com/drinkeg/drinkeg/member/enums/Role.java +++ b/src/main/java/com/drinkeg/drinkeg/member/enums/Role.java @@ -17,14 +17,4 @@ public String toString() { } - - public static Role fromValue(String value) { - for (Role role : Role.values()) { - if (role.getValue().equalsIgnoreCase(value)) { - return role; - } - } - throw new IllegalArgumentException("Unknown role: " + value); - } - } diff --git a/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/apple/appleService/AppleLoginService.java b/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/apple/appleService/AppleLoginService.java index defd4982..436f7bd6 100644 --- a/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/apple/appleService/AppleLoginService.java +++ b/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/apple/appleService/AppleLoginService.java @@ -59,7 +59,7 @@ public LoginResponseDTO appleLogin(AppleLoginRequestDTO appleLoginRequestDTO, Ht if (existData.isEmpty()){ - member = memberConverter.toAppleMember(username, claims); + member = memberConverter.toOAuthMember(username, (String) claims.get("email"),"Apple"); memberRepository.save(member); System.out.println("첫 로그인임"); tokenService.jwtProvider(member, response); diff --git a/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/kakao/kakaoService/KakaoLoginService.java b/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/kakao/kakaoService/KakaoLoginService.java index ba05b2a5..756f7d5f 100644 --- a/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/kakao/kakaoService/KakaoLoginService.java +++ b/src/main/java/com/drinkeg/drinkeg/member/login/oauth2/kakao/kakaoService/KakaoLoginService.java @@ -51,7 +51,7 @@ public LoginResponseDTO kakaoLogin(KakaoLoginRequestDTO kakaoLoginRequestDTO, Ht if (existData.isEmpty()){ - member = memberConverter.toKakaoMember(kakaoname,kakaoEmail); + member = memberConverter.toOAuthMember(kakaoname,kakaoEmail,"Kakao"); memberRepository.save(member); System.out.println("첫 로그인임"); tokenService.jwtProvider(member, response);