diff --git a/order-service/src/docs/asciidoc/api-docs.adoc b/order-service/src/docs/asciidoc/api-docs.adoc index b6f73e3..f5c4776 100644 --- a/order-service/src/docs/asciidoc/api-docs.adoc +++ b/order-service/src/docs/asciidoc/api-docs.adoc @@ -72,16 +72,16 @@ operation::order-patch[snippets='curl-request,http-request,http-response,path-pa === 주문 페이지 - 페이지 offset : 6 -operation::orderMain-get[snippets='curl-request,http-request,http-response,request-parameters,response-fields'] +operation::orderMain-get[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields'] === 점주 서비스 - 주문 페이지 (잘못된 파라미터 형식) -operation::orderMain-get-badParameterException[snippets='curl-request,http-request,http-response,request-parameters,response-fields'] +operation::orderMain-get-badParameterException[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields'] === 점주 서비스 - 지난 주문 페이지 -operation::prevOrder-get[snippets='curl-request,http-request,http-response,request-parameters,response-fields'] +operation::prevOrder-get[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields'] === 점주 서비스 - 지난 주문 페이지 (잘못된 파라미터 형식) -operation::prevOrder-get-BindException[snippets='curl-request,http-request,http-response,request-parameters,response-fields'] +operation::prevOrder-get-BindException[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields'] == Just Pick-up === 주문 내역 페이지 diff --git a/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/OrderHistoryDto.java b/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/OrderHistoryDto.java index 0dd165f..f90dcb2 100644 --- a/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/OrderHistoryDto.java +++ b/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/OrderHistoryDto.java @@ -4,6 +4,7 @@ import com.justpickup.orderservice.domain.order.entity.Order; import com.justpickup.orderservice.domain.order.entity.OrderStatus; import com.justpickup.orderservice.domain.orderItem.entity.OrderItem; import lombok.AccessLevel; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @@ -23,12 +24,30 @@ public class OrderHistoryDto { private String storeName; private List<_OrderHistoryItem> orderItems = new ArrayList<>(); - @Getter + @Builder + public OrderHistoryDto(Long id, LocalDateTime orderTime, long price, OrderStatus orderStatus, Long storeId, String storeName, List<_OrderHistoryItem> orderItems) { + this.id = id; + this.orderTime = orderTime; + this.price = price; + this.orderStatus = orderStatus; + this.storeId = storeId; + this.storeName = storeName; + this.orderItems = orderItems; + } + + @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public static class _OrderHistoryItem { private Long id; private Long itemId; private String itemName; + @Builder + public _OrderHistoryItem(Long id, Long itemId, String itemName) { + this.id = id; + this.itemId = itemId; + this.itemName = itemName; + } + public static _OrderHistoryItem of(OrderItem orderItem) { _OrderHistoryItem orderHistoryItem = new _OrderHistoryItem(); orderHistoryItem.id = orderItem.getId(); diff --git a/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/PrevOrderDto.java b/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/PrevOrderDto.java index dd9e899..9de89fd 100644 --- a/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/PrevOrderDto.java +++ b/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/PrevOrderDto.java @@ -4,6 +4,7 @@ import com.justpickup.orderservice.domain.order.entity.Order; import com.justpickup.orderservice.domain.order.entity.OrderStatus; import com.justpickup.orderservice.domain.orderItem.entity.OrderItem; import lombok.AccessLevel; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @@ -26,12 +27,30 @@ public class PrevOrderDto { private List<_PrevOrderItem> orderItems = new ArrayList<>(); - @Getter + @Builder + public PrevOrderDto(Long id, OrderStatus orderStatus, LocalDateTime orderTime, long orderPrice, Long userId, String userName, List<_PrevOrderItem> orderItems) { + this.id = id; + this.orderStatus = orderStatus; + this.orderTime = orderTime; + this.orderPrice = orderPrice; + this.userId = userId; + this.userName = userName; + this.orderItems = orderItems; + } + + @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public static class _PrevOrderItem { private Long id; private Long itemId; private String name; + @Builder + public _PrevOrderItem(Long id, Long itemId, String name) { + this.id = id; + this.itemId = itemId; + this.name = name; + } + // 생성 메소드 static _PrevOrderItem of(OrderItem orderItem) { _PrevOrderItem prevOrderItem = new _PrevOrderItem(); diff --git a/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderCustomerApiControllerTest.java b/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderCustomerApiControllerTest.java index 78175ff..fce27c4 100644 --- a/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderCustomerApiControllerTest.java +++ b/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderCustomerApiControllerTest.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.justpickup.orderservice.config.TestConfig; import com.justpickup.orderservice.domain.order.dto.FetchOrderDto; import com.justpickup.orderservice.domain.order.dto.OrderDto; +import com.justpickup.orderservice.domain.order.dto.OrderHistoryDto; import com.justpickup.orderservice.domain.order.entity.OrderStatus; import com.justpickup.orderservice.domain.order.repository.OrderRepository; import com.justpickup.orderservice.domain.order.service.OrderService; @@ -98,21 +99,25 @@ class OrderCustomerApiControllerTest { ; } - private SliceImpl getWillReturnOrderHistory(Pageable pageable) { + private SliceImpl getWillReturnOrderHistory(Pageable pageable) { - List contents = new ArrayList<>(); + List contents = new ArrayList<>(); for (long i = 1; i <= 3; i++) { - OrderItemDto orderItemDto_1 = OrderItemDto.builder().id(i * 10).itemId(i * 100).build(); - OrderItemDto orderItemDto_2 = OrderItemDto.builder().id((i + 1) * 20L).itemId((i + 1) *200L).build(); + OrderHistoryDto._OrderHistoryItem orderItemDto_1 = + OrderHistoryDto._OrderHistoryItem.builder() + .id(i * 10).itemId(i * 100).build(); + OrderHistoryDto._OrderHistoryItem orderItemDto_2 = + OrderHistoryDto._OrderHistoryItem.builder() + .id((i + 1) * 20L).itemId((i + 1) *200L).build(); int hour = 20; - OrderDto orderDto = OrderDto.builder() + OrderHistoryDto orderDto = OrderHistoryDto.builder() .id(i) .orderTime(LocalDateTime.of(2022, 3, 7, --hour, 0, 0)) .orderStatus(OrderStatus.PLACED) .storeId(i + 1000) - .orderPrice(i * 10_000) - .orderItemDtoList(List.of(orderItemDto_1, orderItemDto_2)) + .price(i * 10_000) + .orderItems(List.of(orderItemDto_1, orderItemDto_2)) .build(); contents.add(orderDto); diff --git a/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderOwnerApiControllerTest.java b/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderOwnerApiControllerTest.java index 9c80c26..64192c6 100644 --- a/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderOwnerApiControllerTest.java +++ b/order-service/src/test/java/com/justpickup/orderservice/domain/order/web/OrderOwnerApiControllerTest.java @@ -2,12 +2,9 @@ package com.justpickup.orderservice.domain.order.web; import com.fasterxml.jackson.databind.ObjectMapper; import com.justpickup.orderservice.config.TestConfig; -import com.justpickup.orderservice.domain.order.dto.OrderDto; -import com.justpickup.orderservice.domain.order.dto.OrderMainDto; +import com.justpickup.orderservice.domain.order.dto.*; import com.justpickup.orderservice.domain.order.dto.OrderMainDto._Order; import com.justpickup.orderservice.domain.order.dto.OrderMainDto._OrderItem; -import com.justpickup.orderservice.domain.order.dto.OrderSearchCondition; -import com.justpickup.orderservice.domain.order.dto.PrevOrderSearch; import com.justpickup.orderservice.domain.order.entity.OrderStatus; import com.justpickup.orderservice.domain.order.repository.OrderRepository; import com.justpickup.orderservice.domain.order.service.OrderService; @@ -35,6 +32,8 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.BDDMockito.given; +import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName; +import static org.springframework.restdocs.headers.HeaderDocumentation.requestHeaders; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get; import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; @@ -80,6 +79,7 @@ class OrderOwnerApiControllerTest { // WHEN ResultActions actions = mockMvc.perform(get(url + "/order-main") + .header("user-id", "1") .param("orderDate", orderDate) .param("lastOrderId", String.valueOf(lastOrderId)) ); @@ -97,6 +97,9 @@ class OrderOwnerApiControllerTest { parameterWithName("orderDate").description("주문 날짜 YYYY-MM-DD"), parameterWithName("lastOrderId").optional().description("페이지의 마지막 주문 고유 번호") ), + requestHeaders( + headerWithName("user-id").description("유저 고유번호") + ), responseFields( fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"), fieldWithPath("message").description("메시지"), @@ -142,6 +145,7 @@ class OrderOwnerApiControllerTest { // WHEN ResultActions actions = mockMvc.perform(get(url + "/order-main") + .header("user-id", "1") .param("orderDate", orderDate) .param("lastOrderId", String.valueOf(lastOrderId)) ); @@ -157,6 +161,9 @@ class OrderOwnerApiControllerTest { parameterWithName("orderDate").description("주문 날짜 YYYY-MM-DD"), parameterWithName("lastOrderId").optional().description("페이지의 마지막 주문 고유 번호") ), + requestHeaders( + headerWithName("user-id").description("유저 고유번호") + ), responseFields( fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"), fieldWithPath("message").description("메시지"), @@ -167,44 +174,44 @@ class OrderOwnerApiControllerTest { ; } - private List getOrderMainDtoList() { - OrderItemDto orderItemDto_100 = OrderItemDto.builder() + private List getOrderMainDtoList() { + PrevOrderDto._PrevOrderItem orderItemDto_100 = PrevOrderDto._PrevOrderItem.builder() .id(100L) .itemId(100L) .build(); - orderItemDto_100.setItemName("아이템1"); - OrderItemDto orderItemDto_101 = OrderItemDto.builder() + orderItemDto_100.changeName("아이템1"); + PrevOrderDto._PrevOrderItem orderItemDto_101 = PrevOrderDto._PrevOrderItem.builder() .id(101L) .itemId(101L) .build(); - orderItemDto_101.setItemName("아이템2"); - OrderItemDto orderItemDto_102 = OrderItemDto.builder() + orderItemDto_101.changeName("아이템2"); + PrevOrderDto._PrevOrderItem orderItemDto_102 = PrevOrderDto._PrevOrderItem.builder() .id(102L) .itemId(102L) .build(); - orderItemDto_102.setItemName("아이템3"); - OrderItemDto orderItemDto_103 = OrderItemDto.builder() + orderItemDto_102.changeName("아이템3"); + PrevOrderDto._PrevOrderItem orderItemDto_103 = PrevOrderDto._PrevOrderItem.builder() .id(103L) .itemId(103L) .build(); - orderItemDto_103.setItemName("아이템2"); + orderItemDto_103.changeName("아이템2"); - OrderDto orderDto_1 = OrderDto.builder() + PrevOrderDto orderDto_1 = PrevOrderDto.builder() .id(1L) .userId(1L) - .orderItemDtoList(List.of(orderItemDto_100, orderItemDto_101)) + .orderItems(List.of(orderItemDto_100, orderItemDto_101)) .orderStatus(OrderStatus.PLACED) .orderTime(LocalDateTime.of(2022, 2, 3, 14, 0, 0)) .build(); - orderDto_1.setUserName("닉네임"); - OrderDto orderDto_2 = OrderDto.builder() + orderDto_1.changeUserName("닉네임"); + PrevOrderDto orderDto_2 = PrevOrderDto.builder() .id(2L) .userId(1L) - .orderItemDtoList(List.of(orderItemDto_102, orderItemDto_103)) + .orderItems(List.of(orderItemDto_102, orderItemDto_103)) .orderStatus(OrderStatus.FAIL) .orderTime(LocalDateTime.of(2022, 2, 3, 15, 0, 0)) .build(); - orderDto_2.setUserName("닉네임"); + orderDto_2.changeUserName("닉네임"); return List.of(orderDto_1, orderDto_2); } @@ -226,6 +233,7 @@ class OrderOwnerApiControllerTest { // WHEN ResultActions actions = mockMvc.perform(get(url + "/prev-order") + .header("user-id", "1") .param("startDate", startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) .param("endDate", endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) .param("page", page) @@ -251,6 +259,9 @@ class OrderOwnerApiControllerTest { parameterWithName("endDate").description("종료날짜 YYYY-MM-DD"), parameterWithName("page").optional().description("검색 페이지 (0부터 시작)") ), + requestHeaders( + headerWithName("user-id").description("유저 고유번호") + ), responseFields( fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"), fieldWithPath("message").description("메시지"), @@ -280,6 +291,7 @@ class OrderOwnerApiControllerTest { // THEN ResultActions actions = mockMvc.perform(get(url + "/prev-order") + .header("user-id", "1") .param("startDate", startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) .param("endDate", endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) .param("page", page) @@ -297,6 +309,9 @@ class OrderOwnerApiControllerTest { parameterWithName("endDate").description("종료날짜 YYYY-MM-DD"), parameterWithName("page").optional().description("검색 페이지 (0부터 시작)") ), + requestHeaders( + headerWithName("user-id").description("유저 고유번호") + ), responseFields( fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"), fieldWithPath("message").description("메시지"),