From 953bf0b45676a7ea953462446587468d1db0749a Mon Sep 17 00:00:00 2001 From: taeyeon Date: Sun, 7 Apr 2024 14:58:19 +0900 Subject: [PATCH 1/5] =?UTF-8?q?add=20::=20dto=20=EB=B3=80=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/dto/response/OrdersResponse.java | 12 ++++++++++++ .../server/v2/domain/order/util/OrdersConverter.java | 3 +++ .../domain/order/util/impl/OrdersConverterImpl.java | 10 ++++++++++ 3 files changed, 25 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/order/presentation/dto/response/OrdersResponse.java diff --git a/src/main/java/com/mindway/server/v2/domain/order/presentation/dto/response/OrdersResponse.java b/src/main/java/com/mindway/server/v2/domain/order/presentation/dto/response/OrdersResponse.java new file mode 100644 index 0000000..9cae077 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/presentation/dto/response/OrdersResponse.java @@ -0,0 +1,12 @@ +package com.mindway.server.v2.domain.order.presentation.dto.response; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class OrdersResponse { + private String title; + private String author; + private String book_url; +} diff --git a/src/main/java/com/mindway/server/v2/domain/order/util/OrdersConverter.java b/src/main/java/com/mindway/server/v2/domain/order/util/OrdersConverter.java index e6e9f2f..7c799a3 100644 --- a/src/main/java/com/mindway/server/v2/domain/order/util/OrdersConverter.java +++ b/src/main/java/com/mindway/server/v2/domain/order/util/OrdersConverter.java @@ -3,8 +3,11 @@ import com.mindway.server.v2.domain.order.entity.BookType; import com.mindway.server.v2.domain.order.entity.Orders; import com.mindway.server.v2.domain.order.presentation.dto.request.OrderRequest; +import com.mindway.server.v2.domain.order.presentation.dto.response.OrdersResponse; import com.mindway.server.v2.domain.user.entity.User; public interface OrdersConverter { Orders toEntity (OrderRequest bookRequest, User user, BookType bookType); + + OrdersResponse toDto (Orders orders); } diff --git a/src/main/java/com/mindway/server/v2/domain/order/util/impl/OrdersConverterImpl.java b/src/main/java/com/mindway/server/v2/domain/order/util/impl/OrdersConverterImpl.java index 434ad74..13e44cb 100644 --- a/src/main/java/com/mindway/server/v2/domain/order/util/impl/OrdersConverterImpl.java +++ b/src/main/java/com/mindway/server/v2/domain/order/util/impl/OrdersConverterImpl.java @@ -3,6 +3,7 @@ import com.mindway.server.v2.domain.order.entity.BookType; import com.mindway.server.v2.domain.order.entity.Orders; import com.mindway.server.v2.domain.order.presentation.dto.request.OrderRequest; +import com.mindway.server.v2.domain.order.presentation.dto.response.OrdersResponse; import com.mindway.server.v2.domain.order.util.OrdersConverter; import com.mindway.server.v2.domain.user.entity.User; import org.springframework.stereotype.Component; @@ -19,4 +20,13 @@ public Orders toEntity(OrderRequest bookRequest, User user, BookType bookType) { .user(user) .build(); } + + @Override + public OrdersResponse toDto(Orders orders) { + return OrdersResponse.builder() + .title(orders.getTitle()) + .author(orders.getAuthor()) + .book_url(orders.getBookURL()) + .build(); + } } From 761922e2cab797c17468b14c535d7540ce993686 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Sun, 7 Apr 2024 14:58:46 +0900 Subject: [PATCH 2/5] =?UTF-8?q?create=20::=20=EB=8F=84=EC=84=9C=20?= =?UTF-8?q?=EC=8B=A0=EC=B2=AD=20=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/GetBookOrdersService.java | 9 ++++ .../impl/GetBookOrdersServiceImpl.java | 42 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/order/service/GetBookOrdersService.java create mode 100644 src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java diff --git a/src/main/java/com/mindway/server/v2/domain/order/service/GetBookOrdersService.java b/src/main/java/com/mindway/server/v2/domain/order/service/GetBookOrdersService.java new file mode 100644 index 0000000..2a060dc --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/service/GetBookOrdersService.java @@ -0,0 +1,9 @@ +package com.mindway.server.v2.domain.order.service; + +import com.mindway.server.v2.domain.order.presentation.dto.response.OrdersResponse; + +import java.util.List; + +public interface GetBookOrdersService { + List execute(); +} diff --git a/src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java new file mode 100644 index 0000000..7d02ea3 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java @@ -0,0 +1,42 @@ +package com.mindway.server.v2.domain.order.service.impl; + +import com.mindway.server.v2.domain.order.entity.Orders; +import com.mindway.server.v2.domain.order.exception.NotAccessStudentException; +import com.mindway.server.v2.domain.order.presentation.dto.response.OrdersResponse; +import com.mindway.server.v2.domain.order.repository.OrdersRepository; +import com.mindway.server.v2.domain.order.service.GetBookOrdersService; +import com.mindway.server.v2.domain.order.util.OrdersConverter; +import com.mindway.server.v2.domain.user.entity.Authority; +import com.mindway.server.v2.domain.user.entity.User; +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 GetBookOrdersServiceImpl implements GetBookOrdersService { + private final UserUtil userUtil; + private final OrdersRepository ordersRepository; + private final OrdersConverter ordersConverter; + + @Override + public List execute() { + User user = userUtil.getCurrentUser(); + + if (user.getAuthority() != Authority.ROLE_TEACHER + && user.getAuthority() != Authority.ROLE_HELPER) { + throw new NotAccessStudentException(); + } + + List orders = ordersRepository.findAll(); + + return orders.stream() + .map(ordersConverter::toDto) + .collect(Collectors.toList()); + } +} From 77650faed8035d8532e3d889e5d14c6a899176b5 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Sun, 7 Apr 2024 14:59:03 +0900 Subject: [PATCH 3/5] =?UTF-8?q?add=20::=20endpoint=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/order/presentation/OrdersController.java | 11 +++++++++++ .../v2/global/security/config/SecurityConfig.java | 1 + 2 files changed, 12 insertions(+) diff --git a/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java b/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java index d02abf4..74aad69 100644 --- a/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java +++ b/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java @@ -3,8 +3,10 @@ import com.mindway.server.v2.domain.order.entity.BookType; import com.mindway.server.v2.domain.order.presentation.dto.request.OrderRequest; import com.mindway.server.v2.domain.order.presentation.dto.request.OrderUpdateRequest; +import com.mindway.server.v2.domain.order.presentation.dto.response.OrdersResponse; import com.mindway.server.v2.domain.order.service.BookRequestService; import com.mindway.server.v2.domain.order.service.DeleteBookOrderService; +import com.mindway.server.v2.domain.order.service.GetBookOrdersService; import com.mindway.server.v2.domain.order.service.UpdateBookOrderService; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -12,6 +14,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequiredArgsConstructor @RequestMapping("/api/v2/order") @@ -19,6 +23,7 @@ public class OrdersController { private final BookRequestService bookRequestService; private final DeleteBookOrderService deleteBookOrderService; private final UpdateBookOrderService updateBookOrderService; + private final GetBookOrdersService getBookOrdersService; @PostMapping() public ResponseEntity bookRequest @@ -40,4 +45,10 @@ public ResponseEntity deleteBook (@PathVariable(value = "order_id") Long i return ResponseEntity.noContent().build(); } + @GetMapping + public ResponseEntity> bookOrders () { + List orders = getBookOrdersService.execute(); + return ResponseEntity.ok(orders); + } + } diff --git a/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java b/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java index 56d1801..8edc725 100644 --- a/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java +++ b/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java @@ -57,6 +57,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .requestMatchers(HttpMethod.POST, "/api/v2/order").authenticated() .requestMatchers(HttpMethod.DELETE, "/api/v2/order/{order_id}").authenticated() .requestMatchers(HttpMethod.PATCH, "api/v2/order/{order_id}").authenticated() + .requestMatchers(HttpMethod.GET, "api/v2/order").authenticated() .anyRequest().authenticated() ) From 08373990e0a522cb370653d709b515cd258d8854 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Sun, 7 Apr 2024 18:13:53 +0900 Subject: [PATCH 4/5] =?UTF-8?q?refactor=20::=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/v2/domain/order/presentation/OrdersController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java b/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java index 74aad69..d0a5964 100644 --- a/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java +++ b/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java @@ -46,7 +46,7 @@ public ResponseEntity deleteBook (@PathVariable(value = "order_id") Long i } @GetMapping - public ResponseEntity> bookOrders () { + public ResponseEntity> getBookOrders () { List orders = getBookOrdersService.execute(); return ResponseEntity.ok(orders); } From 05ad81b429549c5b23633e68d377c77788eeb194 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Sun, 7 Apr 2024 18:14:04 +0900 Subject: [PATCH 5/5] =?UTF-8?q?refactor=20::=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EA=B0=84=EC=86=8C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/order/service/impl/GetBookOrdersServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java index 7d02ea3..516096e 100644 --- a/src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java +++ b/src/main/java/com/mindway/server/v2/domain/order/service/impl/GetBookOrdersServiceImpl.java @@ -1,6 +1,5 @@ package com.mindway.server.v2.domain.order.service.impl; -import com.mindway.server.v2.domain.order.entity.Orders; import com.mindway.server.v2.domain.order.exception.NotAccessStudentException; import com.mindway.server.v2.domain.order.presentation.dto.response.OrdersResponse; import com.mindway.server.v2.domain.order.repository.OrdersRepository; @@ -33,9 +32,7 @@ public List execute() { throw new NotAccessStudentException(); } - List orders = ordersRepository.findAll(); - - return orders.stream() + return ordersRepository.findAll().stream() .map(ordersConverter::toDto) .collect(Collectors.toList()); }