Skip to content
Merged
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
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package swyp.swyp6_team7.profile.controller;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
Expand All @@ -13,6 +14,7 @@
import swyp.swyp6_team7.travel.service.TravelAppliedService;
import swyp.swyp6_team7.travel.service.TravelListService;

@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/users")
Expand All @@ -29,10 +31,15 @@ public ApiResponse<Page<TravelListResponseDto>> getTargetUserCreatedTravels(
@RequestParam(value = "size", defaultValue = "5") int size,
@RequireUserNumber Integer userNumber
){
Pageable pageable = PageRequest.of(page, size);
Page<TravelListResponseDto> createdTravelList = travelListService.getTravelListByUser(targetUserNumber, pageable);
try {
Pageable pageable = PageRequest.of(page, size);
Page<TravelListResponseDto> createdTravelList = travelListService.getTravelListByUser(targetUserNumber, pageable);

return ApiResponse.success(createdTravelList);
return ApiResponse.success(createdTravelList);
} catch (Exception e){
log.error("만든 여행 조회 실패 - 상대 userNumber={}, error={}",targetUserNumber, e.getMessage());
throw e;
}
}

// 상대방의 참가한 여행 목록 조회
Expand All @@ -43,17 +50,27 @@ public ApiResponse<Page<TravelListResponseDto>> getTargetUserAppliedTravels(
@RequestParam(value = "size", defaultValue = "5") int size,
@RequireUserNumber Integer userNumber
){
Pageable pageable = PageRequest.of(page, size);
Page<TravelListResponseDto> appliedTravelList = travelAppliedService.getAppliedTripsByUser(targetUserNumber, pageable);
try {
Pageable pageable = PageRequest.of(page, size);
Page<TravelListResponseDto> appliedTravelList = travelAppliedService.getAppliedTripsByUser(targetUserNumber, pageable);

return ApiResponse.success(appliedTravelList);
return ApiResponse.success(appliedTravelList);
} catch (Exception e){
log.error("신청한 여행 조회 실패 - 상대 userNumber={}, error={}",targetUserNumber, e.getMessage());
throw e;
}
}

// 상대방의 방문한 여행 로그 조회
@GetMapping("/{targetUserNumber}/visited-countries")
public ApiResponse<VisitedCountryLogResponse> getVisitedCountries(
@PathVariable("targetUserNumber") Integer targetUserNumber,
@RequireUserNumber Integer userNumber) {
return ApiResponse.success(visitedCountryLogService.getVisitedCountriesByUser(targetUserNumber));
try {
return ApiResponse.success(visitedCountryLogService.getVisitedCountriesByUser(targetUserNumber));
} catch (Exception e){
log.error("여행 로그 조회 실패 - 상대 userNumber={}, error={}",targetUserNumber, e.getMessage());
throw e;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public Page<TravelListResponseDto> getTravelListByUser(Integer userNumber, Pagea
}).collect(Collectors.toList());

return toPage(dtos, pageable);
} catch (Exception e){
} catch (Exception e) {
log.error("getTravelListByUser() error : userNumber={}, error={}", userNumber, e.getMessage(), e);
throw e;
}
Expand All @@ -59,10 +59,10 @@ public Page<TravelListResponseDto> getTravelListByUser(Integer userNumber, Pagea
// Travel 엔티티를 TravelListResponseDto로 변환하는 메서드
private TravelListResponseDto toTravelListResponseDto(Travel travel, Integer userNumber) {

// 동반자 수 계산
int currentApplicants = travel.getCompanions().size();
// 동반자 수 계산
int currentApplicants = travel.getCompanions().size();

// 사용자의 이름을 가져오기 위해 userNumber로 사용자 조회
// 사용자의 이름을 가져오기 위해 userNumber로 사용자 조회
Users host = userRepository.findByUserNumber(travel.getUserNumber())
.orElseThrow(() -> {
String errorMsg = String.format("작성자 정보를 찾을 수 없습니다. travelNumber=%d, userNumber=%d",
Expand All @@ -72,28 +72,28 @@ private TravelListResponseDto toTravelListResponseDto(Travel travel, Integer use
});


// 태그 리스트 추출
List<String> tags = travel.getTravelTags().stream()
.map(travelTag -> travelTag.getTag().getName())
.collect(Collectors.toList());
// 태그 리스트 추출
List<String> tags = travel.getTravelTags().stream()
.map(travelTag -> travelTag.getTag().getName())
.collect(Collectors.toList());

// 북마크 여부 확인
boolean isBookmarked = bookmarkRepository.existsByUserNumberAndTravelNumber(userNumber, travel.getNumber());


return new TravelListResponseDto(
travel.getNumber(),
travel.getTitle(),
travel.getLocationName(),
host.getUserNumber(),
host.getUserName(),
tags,
currentApplicants,
travel.getMaxPerson(),
travel.getCreatedAt(),
isBookmarked
);
}
// 북마크 여부 확인
boolean isBookmarked = bookmarkRepository.existsByUserNumberAndTravelNumber(userNumber, travel.getNumber());


return new TravelListResponseDto(
travel.getNumber(),
travel.getTitle(),
travel.getLocationName(),
host.getUserNumber(),
host.getUserName(),
tags,
currentApplicants,
travel.getMaxPerson(),
travel.getCreatedAt(),
isBookmarked
);
}

// Page 객체를 생성하는 메서드
private Page<TravelListResponseDto> toPage(List<TravelListResponseDto> dtos, Pageable pageable) {
Expand Down