Skip to content

Commit

Permalink
Merge pull request #39 from Took-Talk/develop
Browse files Browse the repository at this point in the history
Fix :: resolved error that password was deleted when requesting matching
  • Loading branch information
miraexhoi authored May 2, 2024
2 parents 8d65303 + 8e9e359 commit 5db87b6
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.mirae.tooktalk.domain.chat.dto.response;

import com.mirae.tooktalk.domain.user.entity.user.UserEntity;
import com.mirae.tooktalk.domain.user.payload.response.UserDto;
import lombok.Builder;

@Builder
public record MatchingResponse (
int roomId,

UserEntity userInfo,
UserDto userInfo,

boolean matching
){}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.mirae.tooktalk.domain.chat.entity.MatchingUserEntity;
import com.mirae.tooktalk.domain.chat.repository.MatchingRepository;
import com.mirae.tooktalk.domain.user.entity.user.UserEntity;
import com.mirae.tooktalk.domain.user.payload.response.UserDto;
import com.mirae.tooktalk.domain.user.repository.user.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
Expand All @@ -19,19 +20,28 @@ public class MatchingService {
private final MatchingRepository matchingRepository;

public MatchingResponse matching(Authentication authentication, String mbti){
UserEntity user = findUserByNickname(authentication.getName());
UserDto user = findUserByNickname(authentication.getName());
MatchingUserEntity matchingUserEntity = findMatchingUserByMbti(mbti);

return handleMatchingResult(user, matchingUserEntity, mbti);
}

/* nickname으로 유저 검색 */
private UserEntity findUserByNickname(String nickname) {
private UserDto findUserByNickname(String nickname) {
UserEntity user = userRepository.findByNicknameEquals(nickname)
.orElseThrow(() -> new NoSuchElementException("User not found"));
user.hideUserPassword();

return user;


return UserDto.builder()
.id(user.getId())
.number(user.getNumber())
.nickname(user.getNickname())
.age(user.getAge())
.gender(user.getGender())
.mbti(user.getMbti())
.interests(user.getInterests())
.build();
}

/* mbti로 유저 매칭 */
Expand All @@ -40,15 +50,15 @@ private MatchingUserEntity findMatchingUserByMbti(String mbti) {
}

/* 매칭 결과 처리 */
private MatchingResponse handleMatchingResult(UserEntity user, MatchingUserEntity matchingUserEntity, String mbti) {
private MatchingResponse handleMatchingResult(UserDto user, MatchingUserEntity matchingUserEntity, String mbti) {
if (matchingUserEntity == null) {
return addWaitingList(user, mbti);
}
return removeFromWaitingList(user, matchingUserEntity);
}

/* 해당하는 유저가 없을 경우 대기열에 추가하는 메서드 */
private MatchingResponse addWaitingList(UserEntity user, String mbti) {
private MatchingResponse addWaitingList(UserDto user, String mbti) {
int roomId = matchingRepository.save(
MatchingUserEntity.builder()
.userId(user.getId())
Expand All @@ -64,7 +74,7 @@ private MatchingResponse addWaitingList(UserEntity user, String mbti) {
}

/* 매칭 시 본인 데이터를 대기열에서 지우는 메서드 */
private MatchingResponse removeFromWaitingList(UserEntity user, MatchingUserEntity matchingUserEntity) {
private MatchingResponse removeFromWaitingList(UserDto user, MatchingUserEntity matchingUserEntity) {
matchingRepository.delete(matchingUserEntity);

return MatchingResponse.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,13 +129,4 @@ public void fixUserData(String nickname, String mbti, String bio, String imgUrl)
this.bio = bio;
this.imgUrl = imgUrl;
}

public void fixImage(String imgUrl){
this.imgUrl = imgUrl;
}

/* 유저 정보 반환 시 패스워드 공백 처리 */
public void hideUserPassword() {
this.password = "";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.mirae.tooktalk.domain.user.payload.response;

import lombok.Builder;
import lombok.Getter;

import java.time.LocalDateTime;
import java.util.List;

@Builder
@Getter
public class UserDto {

private int id;

private String number;

private String password;

private String nickname;

private String age;

private String gender;

private String mbti;

private List<String> interests;

private String imgUrl;

private String bio;

private LocalDateTime createdAt;

private int status;

}

0 comments on commit 5db87b6

Please sign in to comment.