-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: 닉네임 변경 api 구현 * chore: 클래스 병합(memberservice1, memberrepository1) 및 패키지 이동(querydlsconfig) * feat: 닉네임 변경 요청 바디 변경 및 유효성 체크
- Loading branch information
Showing
15 changed files
with
223 additions
and
151 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
41 changes: 41 additions & 0 deletions
41
src/main/java/com/climingo/climingoApi/member/api/MemberController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package com.climingo.climingoApi.member.api; | ||
|
||
import com.climingo.climingoApi.global.auth.LoginMember; | ||
import com.climingo.climingoApi.member.api.request.UpdateNicknameRequest; | ||
import com.climingo.climingoApi.member.application.MemberService; | ||
import com.climingo.climingoApi.member.api.response.MemberInfoResponse; | ||
import com.climingo.climingoApi.member.api.response.ProfileResponse; | ||
import com.climingo.climingoApi.member.domain.Member; | ||
import jakarta.validation.Valid; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PatchMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.RequestBody; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
@RequiredArgsConstructor | ||
@RestController | ||
public class MemberController { | ||
|
||
private final MemberService memberService; | ||
|
||
@GetMapping("/members") | ||
public ResponseEntity<ProfileResponse> findMyInfo() { | ||
ProfileResponse profileResponse = memberService.findMyInfo(1L); | ||
return ResponseEntity.ok().body(profileResponse); | ||
} | ||
|
||
@GetMapping("/members/{memberId}") | ||
public ResponseEntity<MemberInfoResponse> findMemberInfo(@PathVariable(value = "memberId") Long memberId) { | ||
MemberInfoResponse memberInfoResponse = memberService.findMemberInfo(memberId); | ||
return ResponseEntity.ok().body(memberInfoResponse); | ||
} | ||
|
||
@PatchMapping("/members/{memberId}/nickname") | ||
public ResponseEntity<Void> updateNickname(@LoginMember Member member, @PathVariable(value = "memberId") Long memberId, @RequestBody @Valid UpdateNicknameRequest request) { | ||
memberService.updateNickname(member, memberId, request.getNickname()); | ||
return ResponseEntity.ok().build(); | ||
} | ||
} |
17 changes: 17 additions & 0 deletions
17
src/main/java/com/climingo/climingoApi/member/api/request/UpdateNicknameRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.climingo.climingoApi.member.api.request; | ||
|
||
import com.fasterxml.jackson.annotation.JsonProperty; | ||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; | ||
import jakarta.validation.constraints.NotNull; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
|
||
@Builder | ||
@Getter | ||
@JsonDeserialize(builder = UpdateNicknameRequest.UpdateNicknameRequestBuilder.class) | ||
public class UpdateNicknameRequest { | ||
|
||
@JsonProperty("nickname") | ||
@NotNull | ||
private final String nickname; | ||
} |
2 changes: 1 addition & 1 deletion
2
...lication/response/MemberInfoResponse.java → ...mber/api/response/MemberInfoResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
...application/response/ProfileResponse.java → .../member/api/response/ProfileResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 0 additions & 29 deletions
29
src/main/java/com/climingo/climingoApi/member/application/MemberController1.java
This file was deleted.
Oops, something went wrong.
62 changes: 6 additions & 56 deletions
62
src/main/java/com/climingo/climingoApi/member/application/MemberService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,14 @@ | ||
package com.climingo.climingoApi.member.application; | ||
|
||
import com.climingo.climingoApi.auth.api.request.SignUpRequest; | ||
import com.climingo.climingoApi.auth.api.response.MemberInfo; | ||
import com.climingo.climingoApi.auth.application.SignInService; | ||
import com.climingo.climingoApi.auth.application.SignUpService; | ||
import com.climingo.climingoApi.member.api.response.MemberInfoResponse; | ||
import com.climingo.climingoApi.member.api.response.ProfileResponse; | ||
import com.climingo.climingoApi.member.domain.Member; | ||
import com.climingo.climingoApi.member.domain.MemberRepository; | ||
import java.util.NoSuchElementException; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
public class MemberService implements SignUpService, SignInService { | ||
public interface MemberService { | ||
|
||
private final MemberRepository memberRepository; | ||
ProfileResponse findMyInfo(Long memberId); | ||
|
||
@Transactional | ||
@Override | ||
public MemberInfo signUp(SignUpRequest request) { | ||
Member member = Member.builder() | ||
.authId(request.getAuthId()) | ||
.providerType(request.getProviderType()) | ||
.nickname(request.getNickname()) | ||
.profileUrl(request.getProfileUrl()) | ||
.physicalInfo(request.getPhysicalInfo()) | ||
.build(); | ||
MemberInfoResponse findMemberInfo(Long memberId); | ||
|
||
validateAbleToSignUp(member); | ||
|
||
member = memberRepository.save(member); | ||
return new MemberInfo(member); | ||
} | ||
|
||
private void validateAbleToSignUp(Member member) { | ||
// 중복 가입 여부 확인 | ||
if (isDuplicatedMember(member.getAuthId(), member.getProviderType())) { | ||
throw new IllegalArgumentException("이미 존재하는 회원입니다."); | ||
} | ||
|
||
if (isDuplicatedNickname(member.getNickname())) { | ||
throw new IllegalArgumentException("이미 존재하는 닉네임입니다."); | ||
} | ||
} | ||
|
||
private boolean isDuplicatedNickname(String nickname) { | ||
return memberRepository.existsByNickname(nickname); | ||
} | ||
|
||
private boolean isDuplicatedMember(String authId, String providerType) { | ||
return memberRepository.existsByAuthIdAndProviderType(authId, providerType); | ||
} | ||
|
||
@Override | ||
public MemberInfo findEnrolledMemberInfoByAuthIdAndProviderType(String authId, | ||
String providerType) { | ||
Member member = memberRepository.findByAuthIdAndProviderType(authId, providerType) | ||
.orElseThrow(() -> new NoSuchElementException("등록되지 않은 사용자. 회원가입을 먼저 진행하세요.")); | ||
|
||
return new MemberInfo(member); | ||
} | ||
void updateNickname(Member member, Long memberId, String nickname); | ||
} |
46 changes: 0 additions & 46 deletions
46
src/main/java/com/climingo/climingoApi/member/application/MemberService1.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.