Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
Binary file added build/libs/BE-ver_230303.jar
Binary file not shown.
Binary file added build/libs/BE-ver_230304.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,16 @@ public ResponseEntity<Object> testLogin(@RequestBody Integer kakaoId, HttpServle
public ResponseEntity<Object> signupKakaoMember(@RequestBody @Validated ReqSignupDto form, HttpServletRequest request) {

Member member = new Member();

//닉네임 사용 가능하면 그대로 진행, 불가능하면 임의 닉네임 "유저-{kakaoId}로 지정.
Boolean nicknameDuplicate = memberService.isNicknameDuplicate(form.getNickname());
if (nicknameDuplicate) { //특수문자는 닉네임에 사용할 수 없으나 임의로 지정하는 닉네임에는 사용 가능하게 해서 또 다른 중복 문제 없게끔.
member.setNickname("유저-" + form.getKakaoId());
} else {
member.setNickname(form.getNickname());
}
member.setKakaoId(form.getKakaoId());
member.setEmail(form.getEmail());
member.setNickname(form.getNickname());
member.setProfileImage(form.getProfileImage());
member.setTermConsent(form.getTermConsent());

Expand Down
12 changes: 10 additions & 2 deletions src/main/java/Remoa/BE/Member/Controller/ProfileController.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public ResponseEntity<Object> userHome(HttpServletRequest request) {
// RESTful API에서 PUT 매핑은 수정할 리소스를 명확하게 지정해야 하는데 이 경우에는 URL에 리소스 ID를 명시하는 것이 일반적이다.
// 그런데 우리는 수정할 사용자의 정보를 모두 입력받아 수정하는 형태이기 때문에
// URL에 리소스 ID를 명시할 필요가 없어서 PUT대신 POST 매핑을 사용하였습니다.
@PostMapping("/user")
@PutMapping("/user")
public ResponseEntity<Object> editProfile(@RequestBody EditProfileForm form, HttpServletRequest request) {
HttpSession session = request.getSession();
Member loginMember = (Member) session.getAttribute("loginMember");
Expand All @@ -56,7 +56,8 @@ public ResponseEntity<Object> editProfile(@RequestBody EditProfileForm form, Htt
return failResponse(CustomMessage.VALIDATED, "로그인하지 않은 회원입니다. <redirect:/login/kakao> 로 redirect");
}

if (memberService.isNicknameDuplicate(form.getNickname())) {
if (memberService.isNicknameDuplicate(form.getNickname()) &&
isNicknameChanged(form, loginMember)) {
return failResponse(CustomMessage.VALIDATED, "닉네임이 중복됩니다.");
}

Expand All @@ -69,6 +70,13 @@ public ResponseEntity<Object> editProfile(@RequestBody EditProfileForm form, Htt
return successResponse(CustomMessage.OK, "redirect:/user");
}

/**
* 닉네임이 변경되지 않아 기존의 닉네임을 다시 사용했을 때 닉네임 중복 체크 로직이 동작하지 않게끔.
*/
private boolean isNicknameChanged(EditProfileForm form, Member loginMember) {
return !(form.getNickname().equals(loginMember.getNickname()));
}

/**
* 프론트에서 닉네임 중복 검사를 할 때 사용할 메서드
* @param nickname
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/Remoa/BE/Member/Service/KakaoService.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

Expand Down Expand Up @@ -121,7 +122,8 @@ public Map<String, Object> getUserInfo(String access_token) throws IOException {
int responseCode = urlConnection.getResponseCode();
log.debug("responseCode = {}", responseCode);

BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),
StandardCharsets.UTF_8)); //한글 깨짐 문제 해결하기 위한 인코딩 파라메터 추가
String line = "";
String res = "";
//다양한 형식(한 줄 이상의 JSON 데이터)를 받기 위한 작업
Expand Down
23 changes: 23 additions & 0 deletions src/main/java/Remoa/BE/Post/Controller/MyPostController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package Remoa.BE.Post.Controller;

import Remoa.BE.Post.Service.PostService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequiredArgsConstructor
@CrossOrigin(origins = "*")
public class MyPostController {

private final PostService postService;

/* @GetMapping("/user/reference")
public ResponseEntity<Object> viewMyReference() {

}*/
}
13 changes: 8 additions & 5 deletions src/test/java/Remoa/BE/withdrew/WithdrewTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import Remoa.BE.Member.Domain.Member;
import Remoa.BE.Member.Repository.MemberRepository;
import Remoa.BE.Member.Service.SignupService;
import Remoa.BE.Member.Service.MemberService;
import Remoa.BE.Member.Service.WithdrewService;
import org.junit.Assert;
import org.junit.Test;
Expand All @@ -18,6 +18,7 @@
import javax.persistence.EntityManager;

import java.util.List;
import java.util.Optional;

import static org.junit.Assert.assertEquals;

Expand All @@ -31,7 +32,7 @@
public class WithdrewTest {

@Autowired
SignupService signupService;
MemberService memberService;

@Autowired
MemberRepository memberRepository;
Expand All @@ -46,7 +47,7 @@ public class WithdrewTest {
public void 회원을_탈퇴하면_멤버테이블의_deleted_컬럼이_true로_바뀐다() throws Exception {
//given
Member testMember = createMember();
signupService.join(testMember);
memberService.join(testMember);

em.flush();

Expand All @@ -72,7 +73,7 @@ public class WithdrewTest {
public void 탈퇴한_멤버_엔티티의_deleted_필드는_true이다() throws Exception {
//given
Member testMember = createMember();
signupService.join(testMember);
memberService.join(testMember);

em.flush();

Expand All @@ -83,7 +84,9 @@ public class WithdrewTest {

em.flush();

Member findMember = memberRepository.findOne(testMemberId);
Optional<Member> member = memberRepository.findOne(testMemberId);
Member findMember = member.get();


//then
assertEquals("회원을 탈퇴하면 해당 멤버 엔티티의 deleted 필드는 true이다.", true, findMember.getDeleted());
Expand Down