diff --git a/src/main/java/com/mindway/server/v2/domain/order/repository/OrdersRepository.java b/src/main/java/com/mindway/server/v2/domain/order/repository/OrdersRepository.java new file mode 100644 index 0000000..37db013 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/repository/OrdersRepository.java @@ -0,0 +1,11 @@ +package com.mindway.server.v2.domain.order.repository; + +import com.mindway.server.v2.domain.order.entity.Orders; +import com.mindway.server.v2.domain.user.entity.User; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface OrdersRepository extends JpaRepository { + List findByUser(User user); +} diff --git a/src/main/java/com/mindway/server/v2/domain/user/presentation/UserController.java b/src/main/java/com/mindway/server/v2/domain/user/presentation/UserController.java index 8c78777..f4b0b6f 100644 --- a/src/main/java/com/mindway/server/v2/domain/user/presentation/UserController.java +++ b/src/main/java/com/mindway/server/v2/domain/user/presentation/UserController.java @@ -1,6 +1,8 @@ package com.mindway.server.v2.domain.user.presentation; import com.mindway.server.v2.domain.user.presentation.dto.response.UserInfoResponse; +import com.mindway.server.v2.domain.user.presentation.dto.response.MyOrdersResponse; +import com.mindway.server.v2.domain.user.service.GetMyOrdersService; import com.mindway.server.v2.domain.user.service.UserInfoService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -8,12 +10,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequiredArgsConstructor @RequestMapping("/api/v2/my") public class UserController { private final UserInfoService userInfoService; + private final GetMyOrdersService getMyOrdersService; @GetMapping public ResponseEntity getUserInfo() { @@ -21,4 +26,9 @@ public ResponseEntity getUserInfo() { return ResponseEntity.ok(userInfoResponse); } + @GetMapping("/book") + public ResponseEntity> getMyOrders() { + List responses = getMyOrdersService.execute(); + return ResponseEntity.ok(responses); + } } diff --git a/src/main/java/com/mindway/server/v2/domain/user/presentation/dto/response/MyOrdersResponse.java b/src/main/java/com/mindway/server/v2/domain/user/presentation/dto/response/MyOrdersResponse.java new file mode 100644 index 0000000..5c10e34 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/user/presentation/dto/response/MyOrdersResponse.java @@ -0,0 +1,11 @@ +package com.mindway.server.v2.domain.user.presentation.dto.response; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class MyOrdersResponse { + private String title; + private String author; +} diff --git a/src/main/java/com/mindway/server/v2/domain/user/service/GetMyOrdersService.java b/src/main/java/com/mindway/server/v2/domain/user/service/GetMyOrdersService.java new file mode 100644 index 0000000..afa5b98 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/user/service/GetMyOrdersService.java @@ -0,0 +1,9 @@ +package com.mindway.server.v2.domain.user.service; + +import com.mindway.server.v2.domain.user.presentation.dto.response.MyOrdersResponse; + +import java.util.List; + +public interface GetMyOrdersService { + List execute(); +} diff --git a/src/main/java/com/mindway/server/v2/domain/user/service/impl/GetMyOrdersServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/user/service/impl/GetMyOrdersServiceImpl.java new file mode 100644 index 0000000..60fa5fc --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/user/service/impl/GetMyOrdersServiceImpl.java @@ -0,0 +1,35 @@ +package com.mindway.server.v2.domain.user.service.impl; + +import com.mindway.server.v2.domain.order.entity.Orders; +import com.mindway.server.v2.domain.order.repository.OrdersRepository; +import com.mindway.server.v2.domain.user.entity.User; +import com.mindway.server.v2.domain.user.presentation.dto.response.MyOrdersResponse; +import com.mindway.server.v2.domain.user.service.GetMyOrdersService; +import com.mindway.server.v2.domain.user.util.UserUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true, rollbackFor = {Exception.class}) +public class GetMyOrdersServiceImpl implements GetMyOrdersService { + + private final UserUtil userUtil; + private final OrdersRepository ordersRepository; + + public List execute() { + User user = userUtil.getCurrentUser(); + List ordersList = ordersRepository.findByUser(user); + + return ordersList.stream() + .map(orders -> MyOrdersResponse.builder() + .title(orders.getTitle()) + .author(orders.getAuthor()) + .build()) + .collect(Collectors.toList()); + } +}