Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
5e6551b
Feat : (Domain) 관심사 비즈니스 로직 구현(#63)
uoo6uoow May 18, 2025
9a8d7b4
Refactor : (Domain) 컨트롤러 응답 형태 변경(#63)
uoo6uoow May 18, 2025
bc1d9a0
Refactor : (Domain) 엔티티 간 잘못된 참조 관계 수정(#63)
uoo6uoow May 18, 2025
1219093
Refactor : (Domain) 관심사 수정 메서드 최적화(#63)
uoo6uoow May 18, 2025
f7ec440
Refactor : (Config) /error 경로 permitAll 추가
uoo6uoow May 19, 2025
aa772ed
Merge branch 'develop' into feature/mg-user
uoo6uoow May 19, 2025
ed86cc4
Refactor : (Config) /error 경로 permitAll 추가
uoo6uoow May 19, 2025
b6ed35f
Refactor : (Config) /error 경로 permitAll 추가
uoo6uoow May 19, 2025
1dd6ce4
Feat : (Domain) 캐릭터, 닉네임 관련 api구현 (#66)
uoo6uoow May 21, 2025
933e654
Refactor : (Domain) 사용자 디폴트 매칭 허용여부 추가
uoo6uoow May 21, 2025
735b15d
Refactor : (Domain)프로필 조회 dto 반환 방식 변경
uoo6uoow May 22, 2025
5058ace
Refactor : (Domain)프로필 조회 dto 반환 방식 재변경
uoo6uoow May 22, 2025
c9abc03
Refactor : (Domain)프로필 조회 dto 데이터 추가
uoo6uoow May 22, 2025
a47bed5
Refactor : (Domain)프로필 조회 api 응답 방식 변경
uoo6uoow May 22, 2025
1cf342c
Refactor : (Domain)프로필 조회 api 응답 방식 변경
uoo6uoow May 22, 2025
f5e636c
Refactor : (Domain)컨트롤러 dto적용 안된 부분 적용
uoo6uoow Jun 4, 2025
76151ed
Refactor : (Domain)이메일 발송 요청 방식 변경
uoo6uoow Jun 4, 2025
a78be45
Feat : (Domain)비밀번호 변경, 회원 탈퇴 구현
uoo6uoow Jun 4, 2025
1a77337
Merge branch 'develop' into feature/mg-user
uoo6uoow Jun 4, 2025
c950d14
Refactor : (Domain) 인증 완료 api 요청 방식 변경
uoo6uoow Jun 4, 2025
499a0a7
[Feat] 이미지 업로드 압축 로직 삭제 (#73)
jay91537 Jun 4, 2025
3a03ff6
Refactor : (Domain) 유저 프로필 관련 api 요청 방식 변경(#71) (#72)
uoo6uoow Jun 4, 2025
c1e1378
54 이미지업로드 리팩토링 (#74)
jay91537 Jun 4, 2025
8f7eee2
[Hotfix] application.yml 다시 추가
jay91537 Jun 4, 2025
d50cead
[Hotfix] application.yml 추가
jay91537 Jun 4, 2025
01aa26a
Merge branch 'develop' into feature/mg-user
uoo6uoow Jun 4, 2025
d00455c
Refactor : (Domain) 인증 메일 발송 비즈니스 로직 수정(#76)
uoo6uoow Jun 5, 2025
63963a0
Refactor : (Domain) 인증 메일 발송 비즈니스 로직 수정(#76)
uoo6uoow Jun 5, 2025
17a622f
Refactor : (Domain)회원 가입 과정 변경(#78)
uoo6uoow Jun 6, 2025
4b8e544
Feature : (Domain)친구 요청 수럭 api Branch created
uoo6uoow Jun 12, 2025
99f76e0
Feature : (Domain)친구 요청보관함 api 추가
uoo6uoow Jun 12, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ private void setAuth(JwtTokenProvider jwtTokenProvider, String token) {
protected boolean shouldNotFilter(HttpServletRequest request) {
String path = request.getRequestURI();
String method = request.getMethod();

// 필터를 생략할 URL 패턴 정의
Map<String, Set<String>> whitelist = Map.of(
"OPTIONS", Set.of("/**"), // CORS Preflight 요청 허용
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,4 +160,11 @@ public ApiResponse<Object> deleteAccount(
return ApiResponse.onSuccess(null);
}

// 친구 요청 수락
@GetMapping("/me/{userId}/profile")
public ApiResponse<FriendProfileDto> getFriendProfile(@PathVariable Long userId) {
FriendProfileDto dto = userService.getFriendProfile(userId);
return ApiResponse.onSuccess(dto);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.example.wowelang_backend.user.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class FriendProfileDto {
private CharacterInfoDto character;
private String nickname;
private List<InterestDto> interests;
private String countryOrMajor;
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

import java.time.LocalDate;


@Getter
@Setter
@NoArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package org.example.wowelang_backend.user.service;

import jakarta.persistence.EntityNotFoundException;
import lombok.RequiredArgsConstructor;
import org.example.wowelang_backend.common.apiPayLoad.status.ErrorStatus;
import org.example.wowelang_backend.user.domain.*;
import org.example.wowelang_backend.user.dto.CharacterInfoDto;
import org.example.wowelang_backend.user.dto.FriendProfileDto;
import org.example.wowelang_backend.user.dto.InterestDto;
import org.example.wowelang_backend.user.dto.UserProfileDto;
import org.example.wowelang_backend.user.repository.ForeignTuteeRepository;
Expand Down Expand Up @@ -238,4 +240,40 @@ public void deleteAccount(User user) {

user.delete(); // 엔티티에 정의한 delete() 호출 → isDeleted=true
}

// 친구 요청 수락 후 보여줄 프로필 조회
public FriendProfileDto getFriendProfile(Long friendUserId) {
// 1) User 엔티티 조회
User user = userRepository.findById(friendUserId)
.orElseThrow(() -> new IllegalArgumentException(ErrorStatus.USER_NOT_FOUND.getMessage()));

// 2) 관심사 조회
List<InterestDto> interests = userInterestRepository
.findAllByUserId(user.getId()).stream()
.map(ui -> new InterestDto(ui.getInterest().getId(), ui.getInterest().getName()))
.toList();

// 3) 캐릭터 정보
CharacterInfoDto character = new CharacterInfoDto(
user.getColorId(),
user.getMaskId()
);

// 4) country/Major 결정
String countryOrMajor;
if (user.getUsertype() == Usertype.FOREIGN) {
ForeignTuteeAttribute attr = user.getForeignTuteeAttribute();
countryOrMajor = (attr != null ? attr.getCountry() : null);
} else {
countryOrMajor = user.getMajor();
}

// 5) DTO로 반환
return new FriendProfileDto(
character, // CharacterInfoDto
user.getNickname(), // String
interests, // List<InterestDto>
countryOrMajor // String
);
}
}
Loading