diff --git a/README.md b/README.md
index d473b17..6d10ace 100644
--- a/README.md
+++ b/README.md
@@ -3,4 +3,9 @@
controller - service - repository의 흐름을 이해하고, api를 구현할 수 있다.
### API 명세서
-https://documenter.getpostman.com/view/28528877/2sAXxLDEqE
\ No newline at end of file
+https://documenter.getpostman.com/view/28528877/2sAXxLDEqE
+
+
+# 배포
+https://e146-119-194-123-73.ngrok-free.app
+
diff --git a/src/main/java/doit/apihw/api/controller/MemberController.java b/src/main/java/doit/apihw/api/controller/MemberController.java
index d1e5890..5af678a 100644
--- a/src/main/java/doit/apihw/api/controller/MemberController.java
+++ b/src/main/java/doit/apihw/api/controller/MemberController.java
@@ -5,12 +5,7 @@
import doit.apihw.api.service.MemberService;
import java.util.List;
import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
@RestController
@RequiredArgsConstructor
@@ -51,5 +46,11 @@ public void changePassword(@PathVariable Long memberId, @RequestBody AuthPasswor
}
// TODO : 자유 주제로 API를 추가로 구현해보세요.
-
+ /**
+ * 회원 탈퇴 시 회원 정보를 삭제한다.
+ */
+ @DeleteMapping("/members/{memberId}/delete")
+ public void deleteMember(@PathVariable Long memberId) {
+ memberService.deleteMember(memberId);
+ }
}
diff --git a/src/main/java/doit/apihw/api/service/AuthService.java b/src/main/java/doit/apihw/api/service/AuthService.java
index ca3dd9d..9be95f8 100644
--- a/src/main/java/doit/apihw/api/service/AuthService.java
+++ b/src/main/java/doit/apihw/api/service/AuthService.java
@@ -52,11 +52,14 @@ public AuthLoginResponse signUp(AuthSignUpRequest request) {
// TODO : 로그인을 진행한다.
public AuthLoginResponse login(AuthLoginRequest request) {
// DB에서 memberLoginId와 memberPassword를 조회하여 일치하는 회원이 있는지 확인한다.
-
+ Member member = memberRepository.findByMemberLoginIdAndMemberPassword( request.getMemberLoginId(), request.getMemberPassword() );
// 만약 일치하는 회원이 없다면, IllegalArgumentException을 발생시킨다.
-
+ if(member == null) {
+ throw new IllegalArgumentException("일치하는 회원이 없거등요 다시 입력해~");
+ }
// 일치하는 회원이 있다면, MemberResponse로 변환하여 반환한다.
- return null;
+ // 이건 좀 어렵네요...답지를 참고했습니다 자동생성으로 알려주긴 한데 없었으면 못 썼을 거 같습니다....
+ return AuthLoginResponse.from(member);
}
diff --git a/src/main/java/doit/apihw/api/service/MemberService.java b/src/main/java/doit/apihw/api/service/MemberService.java
index dc31790..0209cd7 100644
--- a/src/main/java/doit/apihw/api/service/MemberService.java
+++ b/src/main/java/doit/apihw/api/service/MemberService.java
@@ -31,26 +31,48 @@ public MemberResponse findOneMember(Long memberId) {
// TODO : 전체 회원 정보를 조회한다.
public List findAllMembers() {
// DB에서 전체 회원 정보를 조회한다.
-
+ List member = memberRepository.findAll();
// 조회된 회원 정보를 List로 변환하여 반환한다.
- return null;
+ // 얘도 답지 없었으면 못 구현했음...........
+ return member.stream()
+ .map(MemberResponse::from)
+ .toList();
}
// TODO : 회원 이름으로 회원 정보를 조회한다.
public List searchMembersWithName(String memberName) {
// DB에서 memberName에 해당하는 회원 정보를 조회한다.
-
+ List member = memberRepository.findByMemberName(memberName);
// 조회된 회원 정보를 List로 변환하여 반환한다.
- return null;
+ return member.stream()
+ .map(MemberResponse::from)
+ .toList();
}
// TODO : 회원 비밀번호를 변경한다.
public void changePassword(Long memberId, AuthPasswordChangeRequest request) {
// DB에서 memberId에 해당하는 회원 정보를 조회하고, 존재하지 않는다면 IllegalArgumentException을 발생시킨다.
-
+// Member member = memberRepository.findById(memberId);
+// if (member.isEmpty()) {
+// throw new IllegalArgumentException("존재 안함 ㅠㅠ");
+// }
+ // 이렇게 쓰면 되는데 왜 위처럼 쓰면 안되지ㅣ..
+ Member member = memberRepository.findById(memberId)
+ .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 회원입니다."));
// 조회된 회원 정보의 비밀번호를 변경한다. ( request.getNewPassword()를 이용하여 변경한다. )
-
+ // 오... 이렇게...
+ member.changePassword(request.getOldPassword(), request.getNewPassword());
// 변경된 회원 정보를 DB에 저장한다.
+ memberRepository.save(member);
}
+ public void deleteMember(Long memberId) {
+ Optional member = memberRepository.findById(memberId);
+ if (member.isEmpty()) {
+ throw new IllegalArgumentException("존재하지 않는 회원입니다.");
+ }
+ else{
+ memberRepository.deleteById(memberId);
+ }
+ }
}
diff --git a/src/main/java/doit/apihw/domain/member/MemberRepository.java b/src/main/java/doit/apihw/domain/member/MemberRepository.java
index a795758..4e48d46 100644
--- a/src/main/java/doit/apihw/domain/member/MemberRepository.java
+++ b/src/main/java/doit/apihw/domain/member/MemberRepository.java
@@ -2,10 +2,14 @@
import org.springframework.data.jpa.repository.JpaRepository;
+import java.util.List;
+
public interface MemberRepository extends JpaRepository {
Member findByMemberLoginId(String memberLoginId);
// TODO : 회원 이름으로 회원 정보를 조회한다.
+ List findByMemberName(String memberName);
// TODO : 회원 로그인 ID와 비밀번호로 회원 정보를 조회한다.
+ Member findByMemberLoginIdAndMemberPassword(String memberLoginId, String memberPassword);
}