diff --git a/src/main/java/cnu/mvc/domain/member/MemberRepository.java b/src/main/java/cnu/mvc/domain/member/MemberRepository.java index 1b273fc..aaf0174 100644 --- a/src/main/java/cnu/mvc/domain/member/MemberRepository.java +++ b/src/main/java/cnu/mvc/domain/member/MemberRepository.java @@ -1,16 +1,11 @@ package cnu.mvc.domain.member; - import org.springframework.stereotype.Repository; - import java.util.HashMap; import java.util.Map; - @Repository public class MemberRepository { - private static final Map store = new HashMap<>(); private static long sequence = 0L; - public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); @@ -19,10 +14,12 @@ public Member save(Member member) { public Member findById(Long id) { return store.get(id); } - - // 구현 public Member findByEmail(String email) { + for(Member m :store.values()){ + if(m.getEmail().equals(email)){ + return m; + } + } return null; } -} - +} \ No newline at end of file diff --git a/src/main/java/cnu/mvc/domain/member/MemberService.java b/src/main/java/cnu/mvc/domain/member/MemberService.java index b8e785e..d2094bd 100644 --- a/src/main/java/cnu/mvc/domain/member/MemberService.java +++ b/src/main/java/cnu/mvc/domain/member/MemberService.java @@ -1,30 +1,36 @@ package cnu.mvc.domain.member; - import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; - @Service @RequiredArgsConstructor public class MemberService { - private final MemberRepository memberRepository; - public Member join(Member member){ + public Member save(Member member){ return memberRepository.save(member); } + public Member findById(Long id) { + return memberRepository.findById(id); + } public Member validateMember(String email, String pwd) { - Member findMember = findById(1L); + Member findMember = memberRepository.findByEmail(email); + if(findMember == null || !findMember.getPwd().equals(pwd)){ + throw new IllegalStateException("이메일 또는 비밀번호를 확인해주세요."); + } return findMember; } - public Member findById(Long id) { - return memberRepository.findById(id); + public Member join(Member member) { + validateMember(member.getEmail()); + return memberRepository.save(member); } - // 구현 - public Member findByEmail(String email) { - return memberRepository.findByEmail(email); + private void validateMember(String email) { + Member existing = memberRepository.findByEmail(email); + if(existing != null){ + throw new IllegalStateException("이미 존재하는 이메일 계정입니다."); + } } -} +} \ No newline at end of file