Skip to content

Commit

Permalink
Merge pull request #144 from Team-Going/feature/142
Browse files Browse the repository at this point in the history
[feat] 여행 정보 조회 API 구현
  • Loading branch information
gardening-y authored Mar 6, 2024
2 parents f8f948a + 01713a9 commit 17b15d0
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public ResponseEntity<BaseResponse<?>> createTrip(@UserId final Long userId,
@Override
public ResponseEntity<BaseResponse<?>> getTrips(@UserId final Long userId,
@RequestParam final String progress) {
final TripGetResponse response = tripService.getTrips(userId, progress);
final TripsGetResponse response = tripService.getTrips(userId, progress);
return ApiResponseUtil.success(SuccessMessage.OK, response);
}

Expand Down Expand Up @@ -87,6 +87,13 @@ public ResponseEntity<BaseResponse<?>> leaveTrip(@UserId final Long userId,
return ApiResponseUtil.success(SuccessMessage.OK);
}

@GetMapping("/{tripId}")
public ResponseEntity<BaseResponse<?>> getTrip(@PathVariable final Long tripId,
@UserId final Long userId) {
final TripGetResponse response = tripService.getTrip(userId, tripId);
return ApiResponseUtil.success(SuccessMessage.OK, response);
}

@PatchMapping("/{tripId}")
public ResponseEntity<BaseResponse<?>> updateTrip(@PathVariable final Long tripId,
@UserId final Long userId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
package org.doorip.trip.dto.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AccessLevel;
import lombok.Builder;
import org.doorip.trip.domain.Trip;

import java.util.List;
import java.time.LocalDate;

@Builder(access = AccessLevel.PRIVATE)
public record TripGetResponse(
String name,
List<TripResponse> trips
Long tripId,
String title,
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd", timezone = "Asia/Seoul")
LocalDate startDate,
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd", timezone = "Asia/Seoul")
LocalDate endDate
) {
public static TripGetResponse of(String name, List<Trip> trips) {

public static TripGetResponse of(Trip trip) {
return TripGetResponse.builder()
.name(name)
.trips(trips.stream()
.map(TripResponse::of)
.toList())
.tripId(trip.getId())
.title(trip.getTitle())
.startDate(trip.getStartDate())
.endDate(trip.getEndDate())
.build();

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.doorip.trip.dto.response;

import lombok.AccessLevel;
import lombok.Builder;
import org.doorip.trip.domain.Trip;

import java.util.List;

@Builder(access = AccessLevel.PRIVATE)
public record TripsGetResponse(
String name,
List<TripResponse> trips
) {
public static TripsGetResponse of(String name, List<Trip> trips) {
return TripsGetResponse.builder()
.name(name)
.trips(trips.stream()
.map(TripResponse::of)
.toList())
.build();

}
}
12 changes: 10 additions & 2 deletions doorip-api/src/main/java/org/doorip/trip/service/TripService.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.doorip.trip.dto.response.TripEntryResponse;
import org.doorip.trip.dto.response.TripGetResponse;
import org.doorip.trip.dto.response.TripResponse;
import org.doorip.trip.dto.response.TripsGetResponse;
import org.doorip.trip.repository.ParticipantRepository;
import org.doorip.trip.repository.TripRepository;
import org.doorip.user.domain.User;
Expand Down Expand Up @@ -57,17 +58,24 @@ public TripEntryResponse entryTrip(Long userId, Long tripId, TripEntryRequest re
return TripEntryResponse.of(findTrip);
}

public TripGetResponse getTrips(Long userId, String progress) {
public TripsGetResponse getTrips(Long userId, String progress) {
User findUser = getUser(userId);
List<Trip> trips = getTripsAccordingToProgress(userId, progress);
return TripGetResponse.of(findUser.getName(), trips);
return TripsGetResponse.of(findUser.getName(), trips);
}

public TripResponse verifyCode(TripVerifyRequest request) {
Trip trip = getTrip(request.code());
return TripResponse.of(trip);
}

public TripGetResponse getTrip(Long userId, Long tripId) {
User findUser = getUser(userId);
Trip findTrip = getTrip(tripId);
validateParticipant(findUser, findTrip);
return TripGetResponse.of(findTrip);
}

@Transactional
public void updateTrip(Long userId, Long tripId, TripUpdateRequest request) {
User findUser = getUser(userId);
Expand Down

0 comments on commit 17b15d0

Please sign in to comment.