Skip to content

Commit

Permalink
Merge pull request #52 from tukcomCD2024/RIngo-145
Browse files Browse the repository at this point in the history
R ingo 145
  • Loading branch information
KangJiSseok authored May 15, 2024
2 parents 7bb8612 + ac83397 commit 53e59ef
Show file tree
Hide file tree
Showing 11 changed files with 79 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
@RequiredArgsConstructor
public class MemberConfig {

private final SpringDataJpaMemberRepository jpaMemberRepository;

private final EntityManager em;

private final SpringDataJpaMemberRepository springDataJpaMemberRepository;
Expand All @@ -29,7 +31,7 @@ public class MemberConfig {

@Bean
public MemberService userService() {
return new MemberServiceImpl(memberRepository(), encoder(), tokenProvider,refreshMemberRepository);
return new MemberServiceImpl(jpaMemberRepository, memberRepository(), encoder(), tokenProvider,refreshMemberRepository);
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public enum ErrorCode {
// Member
EMAIL_ALREADY_TAKEN(400, "이미 존재하는 이메일입니다."),
LOGIN_FAIL_TAKEN(400,"로그인 실패"),
FIND_TARGETUSER_TAKEN(400,"상대방이 존재하지 않습니다."),

//Friend
FRIEND_ALREADT_TAKEN(400,"이미 친구 요청을 보낸 상대입니다.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import springwebsocket.webchat.global.response.ApiResponse;
import springwebsocket.webchat.member.dto.request.EmailRequest;
import springwebsocket.webchat.member.dto.request.LoginRequest;
import springwebsocket.webchat.member.dto.request.SignUpRequest;
import springwebsocket.webchat.member.dto.response.TokenMessage;
import springwebsocket.webchat.member.dto.response.UserResponse;
import springwebsocket.webchat.member.entity.Member;
import springwebsocket.webchat.member.dto.MemberUpdataDto;
import springwebsocket.webchat.member.service.MemberService;
Expand Down Expand Up @@ -42,6 +44,13 @@ public Optional<Member> findById(Long id) {
return userService.findById(id);
}

@PostMapping("/findtarget")
public ApiResponse<UserResponse> findByTarget(@RequestBody EmailRequest email){
UserResponse target = userService.findByTarget(email);

return ApiResponse.createSuccess(target);
}

@PostMapping("/delete")
public void delete(Long id) {
userService.delete(id);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package springwebsocket.webchat.member.dto.request;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
public class EmailRequest {
String email;

public EmailRequest(String email) {
this.email = email;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ public class SignUpRequest {
// @NotBlank(message = "이름을 입력해주세요.")
private String name;

private String language;

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ public class Member {
public Member() {
}

public Member(String email, String password, String name, String role) {
public Member(String email, String password, String name, String role, String language) {
this.email = email;
this.password = password;
this.name = name;
this.role = role;
this.language = language;
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package springwebsocket.webchat.member.exception;

import springwebsocket.webchat.global.error.BusinessException;
import springwebsocket.webchat.global.response.ErrorCode;

import static springwebsocket.webchat.global.response.ErrorCode.FIND_TARGETUSER_TAKEN;

public class FindTargetException extends BusinessException {
public FindTargetException() {
super(FIND_TARGETUSER_TAKEN);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@
public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByEmail(String email);

Optional<TargetInfoMapping> findMemberByEmail(String email);


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package springwebsocket.webchat.member.repository.springdata;

public interface TargetInfoMapping {
String getEmail();
String getName();
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.springframework.http.ResponseEntity;
import springwebsocket.webchat.global.response.ApiResponse;
import springwebsocket.webchat.member.dto.MemberUpdataDto;
import springwebsocket.webchat.member.dto.request.EmailRequest;
import springwebsocket.webchat.member.dto.request.SignUpRequest;
import springwebsocket.webchat.member.dto.response.TokenMessage;
import springwebsocket.webchat.member.dto.response.UserResponse;
Expand All @@ -19,6 +20,8 @@ public interface MemberService {

Optional<Member> findById(Long id);

UserResponse findByTarget(EmailRequest email);

void delete(Long id);

TokenMessage login(String loginEmail, String password);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,34 @@
import springwebsocket.webchat.global.jwt.TokenProvider;
import springwebsocket.webchat.global.response.ApiResponse;
import springwebsocket.webchat.member.dto.MemberUpdataDto;
import springwebsocket.webchat.member.dto.request.EmailRequest;
import springwebsocket.webchat.member.dto.request.SignUpRequest;
import springwebsocket.webchat.member.dto.response.TokenMessage;
import springwebsocket.webchat.member.dto.response.UserResponse;
import springwebsocket.webchat.member.entity.Member;
import springwebsocket.webchat.member.exception.EmailDuplicatedException;
import springwebsocket.webchat.member.exception.FindTargetException;
import springwebsocket.webchat.member.exception.LoginFailException;
import springwebsocket.webchat.member.repository.MemberRepository;
import springwebsocket.webchat.member.repository.RefreshMemberRepository;
import springwebsocket.webchat.member.repository.springdata.SpringDataJpaMemberRepository;
import springwebsocket.webchat.member.repository.springdata.TargetInfoMapping;

import java.util.Optional;

@Service
@Slf4j
public class MemberServiceImpl implements MemberService {

private final SpringDataJpaMemberRepository jpaMemberRepository;
private final MemberRepository memberRepository;
private final BCryptPasswordEncoder bCryptPasswordEncoder;
private final TokenProvider tokenProvider;
private final RefreshMemberRepository refreshMemberRepository;


public MemberServiceImpl(MemberRepository memberRepository, BCryptPasswordEncoder bCryptPasswordEncoder, TokenProvider tokenProvider, RefreshMemberRepository refreshMemberRepository) {
public MemberServiceImpl(SpringDataJpaMemberRepository jpaMemberRepository,MemberRepository memberRepository, BCryptPasswordEncoder bCryptPasswordEncoder, TokenProvider tokenProvider, RefreshMemberRepository refreshMemberRepository) {
this.jpaMemberRepository = jpaMemberRepository;
this.memberRepository = memberRepository;
this.bCryptPasswordEncoder = bCryptPasswordEncoder;
this.tokenProvider = tokenProvider;
Expand All @@ -49,8 +55,8 @@ public UserResponse signUp(SignUpRequest signUpRequest) {
String name = signUpRequest.getName();
String email = signUpRequest.getEmail();
String password = bCryptPasswordEncoder.encode(signUpRequest.getPassword());

Member member = new Member(email, password, name, "ROLE_ADMIN");
String language = signUpRequest.getLanguage();
Member member = new Member(email, password, name, "ROLE_ADMIN", language);
try {
memberRepository.save(member);
log.info("member ={}", member.getEmail());
Expand All @@ -72,6 +78,17 @@ public Optional<Member> findById(Long id) {
return memberRepository.findById(id);
}

@Override
public UserResponse findByTarget(EmailRequest email) {
Optional<TargetInfoMapping> findEmail = jpaMemberRepository.findMemberByEmail(email.getEmail());
if (findEmail.isEmpty()) {
throw new FindTargetException();
}

UserResponse userResponse = new UserResponse(findEmail.get().getName(),findEmail.get().getEmail());
return userResponse;
}

@Override
public void delete(Long id) {
memberRepository.delete(id);
Expand Down

0 comments on commit 53e59ef

Please sign in to comment.