Skip to content

Commit

Permalink
[NAYB-150] feat: 배달 목록 조회 시 응답 데이터 추가
Browse files Browse the repository at this point in the history
[NAYB-150] feat: 배달 목록 조회 시 응답 데이터  추가
  • Loading branch information
hseong3243 committed Sep 15, 2023
2 parents 2c42625 + d4287ce commit feb506e
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/deliveries")
@RequestMapping("/api/v1")
public class DeliveryController {

private final DeliveryService deliveryService;

@GetMapping("/{orderId}")
@GetMapping("/orders/{orderId}/deliveries")
public ResponseEntity<FindDeliveryDetailResponse> findDelivery(
@PathVariable final Long orderId,
@LoginUser final Long userId) {
Expand All @@ -47,7 +47,7 @@ public ResponseEntity<FindDeliveryDetailResponse> findDelivery(
return ResponseEntity.ok(findDeliveryDetailResponse);
}

@PatchMapping("/{deliveryId}/accept")
@PatchMapping("/deliveries/{deliveryId}/accept")
public ResponseEntity<Void> acceptDelivery(
@PathVariable final Long deliveryId,
@LoginUser final Long riderId) {
Expand All @@ -64,7 +64,7 @@ private void acceptDeliveryIfNotAssigned(AcceptDeliveryCommand acceptDeliveryCom
}
}

@PatchMapping("/{deliveryId}/pickup")
@PatchMapping("/deliveries/{deliveryId}/pickup")
public ResponseEntity<Void> startDelivery(
@PathVariable final Long deliveryId,
@RequestBody @Valid StartDeliveryRequest startDeliveryRequest,
Expand All @@ -77,7 +77,7 @@ public ResponseEntity<Void> startDelivery(
return ResponseEntity.noContent().build();
}

@PatchMapping("/{deliveryId}/complete")
@PatchMapping("/deliveries/{deliveryId}/complete")
public ResponseEntity<Void> completeDelivery(
@PathVariable final Long deliveryId,
@LoginUser final Long riderId) {
Expand All @@ -87,7 +87,7 @@ public ResponseEntity<Void> completeDelivery(
return ResponseEntity.noContent().build();
}

@GetMapping("/waiting")
@GetMapping("/deliveries/waiting")
public ResponseEntity<FindWaitingDeliveriesResponse> findWaitingDeliveries(
final Pageable pageable) {
FindWaitingDeliveriesCommand findWaitingDeliveriesCommand
Expand All @@ -97,7 +97,7 @@ public ResponseEntity<FindWaitingDeliveriesResponse> findWaitingDeliveries(
return ResponseEntity.ok(findWaitingDeliveriesResponse);
}

@GetMapping
@GetMapping("/deliveries")
public ResponseEntity<FindRiderDeliveriesResponse> findRiderDeliveries(
FindRiderDeliveriesRequest findRiderDeliveriesRequest,
final Pageable pageable,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,22 @@
public record FindDeliveryDetailResponse(
Long deliveryId,
DeliveryStatus deliveryStatus,
LocalDateTime createdAt,
LocalDateTime arrivedAt,
Long orderId,
String name,
int price) {
String orderName,
int orderPrice,
String riderRequest) {

public static FindDeliveryDetailResponse from(final Delivery delivery) {
return new FindDeliveryDetailResponse(
delivery.getDeliveryId(),
delivery.getDeliveryStatus(),
delivery.getCreatedAt(),
delivery.getArrivedAt(),
delivery.getOrder().getOrderId(),
delivery.getOrder().getName(),
delivery.getOrder().getPrice());
delivery.getOrder().getPrice(),
delivery.getOrder().getRiderRequest());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,21 @@ public record FindRiderDeliveryResponse(
Long deliveryId,
DeliveryStatus deliveryStatus,
LocalDateTime arrivedAt,
LocalDateTime createdAt,
String address,
int orderPrice,
String riderRequest,
int deliveryFee) {

public static FindRiderDeliveryResponse from(final Delivery delivery) {
return new FindRiderDeliveryResponse(
delivery.getDeliveryId(),
delivery.getDeliveryStatus(),
delivery.getArrivedAt(),
delivery.getCreatedAt(),
delivery.getOrder().getAddress(),
delivery.getOrder().getPrice(),
delivery.getOrder().getRiderRequest(),
delivery.getOrder().getDeliveryFee());
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.prgrms.nabmart.domain.delivery.service.response;

import com.prgrms.nabmart.domain.delivery.Delivery;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.data.domain.Page;

Expand All @@ -19,11 +20,20 @@ public static FindWaitingDeliveriesResponse from(final Page<Delivery> deliveries
deliveryResponses.getTotalElements());
}

public record FindWaitingDeliveryResponse(Long deliveryId) {
public record FindWaitingDeliveryResponse(
Long deliveryId,
LocalDateTime arrivedAt,
LocalDateTime createdAt,
String address,
int deliveryFee) {

public static FindWaitingDeliveryResponse from(final Delivery delivery) {
return new FindWaitingDeliveryResponse(
delivery.getDeliveryId());
delivery.getDeliveryId(),
delivery.getArrivedAt(),
delivery.getCreatedAt(),
delivery.getOrder().getAddress(),
delivery.getOrder().getDeliveryFee());
}
}
}
2 changes: 2 additions & 0 deletions src/test/java/com/prgrms/nabmart/base/IntegrationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,5 +91,7 @@ static void beforeAll() {
properties.setProperty("TOSS_SUCCESS_URL", "tossSuccessUrl");
properties.setProperty("TOSS_FAIL_URL", "tossFailUrl");
properties.setProperty("TOSS_SECRET_KEY", "tossSecretKey");
properties.setProperty("REDIS_HOST", "localhost");
properties.setProperty("REDIS_PORT", "6379");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ void findDelivery() throws Exception {

//when
ResultActions resultActions = mockMvc
.perform(get("/api/v1/deliveries/{orderId}", orderId)
.perform(get("/api/v1/orders/{orderId}/deliveries", orderId)
.header(AUTHORIZATION, accessToken)
.accept(MediaType.APPLICATION_JSON));

Expand All @@ -68,11 +68,13 @@ void findDelivery() throws Exception {
),
responseFields(
fieldWithPath("deliveryId").type(NUMBER).description("배달 ID"),
fieldWithPath("deliveryStatus").type(STRING).description("배달 ID"),
fieldWithPath("arrivedAt").type(STRING).description("도착 시간"),
fieldWithPath("deliveryStatus").type(STRING).description("배달 상태"),
fieldWithPath("createdAt").type(STRING).description("배달 생성 시각"),
fieldWithPath("arrivedAt").type(STRING).description("배달 완료 예정 시각"),
fieldWithPath("orderId").type(NUMBER).description("주문 ID"),
fieldWithPath("name").type(STRING).description("주문 이름"),
fieldWithPath("price").type(NUMBER).description("주문 가격")
fieldWithPath("orderName").type(STRING).description("주문 이름"),
fieldWithPath("orderPrice").type(NUMBER).description("주문 가격"),
fieldWithPath("riderRequest").type(STRING).description("배달원 요청 사항")
)
));
}
Expand Down Expand Up @@ -216,7 +218,16 @@ void findWaitingDeliveries() throws Exception {
),
responseFields(
fieldWithPath("deliveries").type(ARRAY).description("배달 목록"),
fieldWithPath("deliveries[].deliveryId").type(NUMBER).description("배달 ID"),
fieldWithPath("deliveries[].deliveryId").type(NUMBER)
.description("배달 ID"),
fieldWithPath("deliveries[].arrivedAt").type(STRING)
.description("배달 완료 예정 시간"),
fieldWithPath("deliveries[].createdAt").type(STRING)
.description("배달 접수 시간"),
fieldWithPath("deliveries[].address").type(STRING)
.description("배달 목적지"),
fieldWithPath("deliveries[].deliveryFee").type(NUMBER)
.description("배달비"),
fieldWithPath("page").type(NUMBER).description("페이지"),
fieldWithPath("totalElements").type(NUMBER).description("사이즈")
)
Expand All @@ -237,7 +248,10 @@ void findRiderDeliveries() throws Exception {
1L,
deliveryStatus,
LocalDateTime.now().plusMinutes(20),
LocalDateTime.now(),
"address",
15000,
"문 앞에 두고 벨 눌러주세요.",
3000
);
FindRiderDeliveriesResponse findRiderDeliveriesResponse
Expand Down Expand Up @@ -266,6 +280,27 @@ void findRiderDeliveries() throws Exception {
parameterWithName("deliveryStatuses").description("배달 상태 목록"),
parameterWithName("page").description("페이지"),
parameterWithName("size").description("페이지 사이즈")
),
responseFields(
fieldWithPath("deliveries").type(ARRAY).description("배달 목록"),
fieldWithPath("deliveries[].deliveryId").type(NUMBER)
.description("배달 ID"),
fieldWithPath("deliveries[].deliveryStatus").type(STRING)
.description("배달 상태"),
fieldWithPath("deliveries[].arrivedAt").type(STRING)
.description("배달 완료 예정 시각"),
fieldWithPath("deliveries[].createdAt").type(STRING)
.description("배달 생성 시각"),
fieldWithPath("deliveries[].address").type(STRING)
.description("배달 목적지"),
fieldWithPath("deliveries[].orderPrice").type(NUMBER)
.description("주문 가격"),
fieldWithPath("deliveries[].riderRequest").type(STRING)
.description("배달원 요청 사항"),
fieldWithPath("deliveries[].deliveryFee").type(NUMBER)
.description("배달비"),
fieldWithPath("page").type(NUMBER).description("페이지"),
fieldWithPath("totalElements").type(NUMBER).description("총 요소 갯수")
)
));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,16 @@ void success() {
//then
assertThat(findDeliveryDetailResponse.deliveryStatus())
.isEqualTo(delivery.getDeliveryStatus());
assertThat(findDeliveryDetailResponse.arrivedAt())
.isEqualTo(delivery.getCreatedAt());
assertThat(findDeliveryDetailResponse.arrivedAt())
.isEqualTo(delivery.getArrivedAt());
assertThat(findDeliveryDetailResponse.name())
assertThat(findDeliveryDetailResponse.orderName())
.isEqualTo(delivery.getOrder().getName());
assertThat(findDeliveryDetailResponse.price())
assertThat(findDeliveryDetailResponse.orderPrice())
.isEqualTo(delivery.getOrder().getPrice());
assertThat(findDeliveryDetailResponse.riderRequest())
.isEqualTo(delivery.getOrder().getRiderRequest());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@ public final class DeliveryFixture {
private static final Long DELIVERY_ID = 1L;
private static final String ADDRESS = "주소지";
private static final int DELIVERY_FEE = 3000;
private static final LocalDateTime ARRIVED_AT = LocalDateTime.now();
private static final LocalDateTime NOW = LocalDateTime.now();
private static final DeliveryStatus DELIVERY_STATUS = DeliveryStatus.ACCEPTING_ORDER;
private static final Long USER_ID = 1L;
private static final Long ORDER_ID = 1L;
private static final String ORDER_NAME = "비비고 왕교자 외 2개";
private static final int ORDER_PRICE = 1000;
private static final String RIDER_REQUEST = "문 앞에 두고 벨 눌러주세요.";
private static final int ESTIMATE_MINUTES = 20;
private static final int PAGE = 0;
private static final String RIDER_USERNAME = "username";
Expand All @@ -51,16 +52,17 @@ public static FindDeliveryDetailResponse findDeliveryDetailResponse() {
return new FindDeliveryDetailResponse(
DELIVERY_ID,
DELIVERY_STATUS,
ARRIVED_AT,
NOW,
NOW,
ORDER_ID,
ORDER_NAME,
ORDER_PRICE
);
ORDER_PRICE,
RIDER_REQUEST);
}

public static FindWaitingDeliveriesResponse findDeliveriesResponse() {
FindWaitingDeliveryResponse findWaitingDeliveryResponse
= new FindWaitingDeliveryResponse(DELIVERY_ID);
= new FindWaitingDeliveryResponse(DELIVERY_ID, NOW, NOW, ADDRESS, DELIVERY_FEE);
return new FindWaitingDeliveriesResponse(List.of(findWaitingDeliveryResponse), PAGE, 1);
}

Expand Down

0 comments on commit feb506e

Please sign in to comment.