From 2b5055e1bbf8b081ce001bfde27f3601e3ea88a7 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Fri, 5 Apr 2024 10:26:42 +0900 Subject: [PATCH 1/7] add :: book type --- .../com/mindway/server/v2/domain/order/entity/BookType.java | 6 ++++++ .../com/mindway/server/v2/domain/order/entity/Orders.java | 2 ++ 2 files changed, 8 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/order/entity/BookType.java diff --git a/src/main/java/com/mindway/server/v2/domain/order/entity/BookType.java b/src/main/java/com/mindway/server/v2/domain/order/entity/BookType.java new file mode 100644 index 0000000..b1b1ec0 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/entity/BookType.java @@ -0,0 +1,6 @@ +package com.mindway.server.v2.domain.order.entity; + +public enum BookType { + NOVEL, + ESSAY +} diff --git a/src/main/java/com/mindway/server/v2/domain/order/entity/Orders.java b/src/main/java/com/mindway/server/v2/domain/order/entity/Orders.java index 38fcd76..5a6eba1 100644 --- a/src/main/java/com/mindway/server/v2/domain/order/entity/Orders.java +++ b/src/main/java/com/mindway/server/v2/domain/order/entity/Orders.java @@ -24,6 +24,8 @@ public class Orders { private String bookURL; + private BookType bookType; + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User user; From 31b24204f06f9deb360b2b407af0297517e1bfb3 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Fri, 5 Apr 2024 10:50:16 +0900 Subject: [PATCH 2/7] add :: OrderRequest --- .../order/presentation/dto/request/OrderRequest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/order/presentation/dto/request/OrderRequest.java diff --git a/src/main/java/com/mindway/server/v2/domain/order/presentation/dto/request/OrderRequest.java b/src/main/java/com/mindway/server/v2/domain/order/presentation/dto/request/OrderRequest.java new file mode 100644 index 0000000..231aa72 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/presentation/dto/request/OrderRequest.java @@ -0,0 +1,12 @@ +package com.mindway.server.v2.domain.order.presentation.dto.request; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OrderRequest { + private String title; + private String author; + private String book_url; +} From e2851f75acb4d69edb2913788d0c91f20ff51c55 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Fri, 5 Apr 2024 10:51:39 +0900 Subject: [PATCH 3/7] =?UTF-8?q?create=20::=20=EC=A3=BC=EB=AC=B8=20converte?= =?UTF-8?q?r=20=EC=B6=94=EC=83=81=ED=99=94=20=EB=B0=8F=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/domain/order/util/OrdersConverter.java | 10 +++++++++ .../order/util/impl/OrdersConverterImpl.java | 22 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/order/util/OrdersConverter.java create mode 100644 src/main/java/com/mindway/server/v2/domain/order/util/impl/OrdersConverterImpl.java 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 new file mode 100644 index 0000000..e6e9f2f --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/util/OrdersConverter.java @@ -0,0 +1,10 @@ +package com.mindway.server.v2.domain.order.util; + +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.user.entity.User; + +public interface OrdersConverter { + Orders toEntity (OrderRequest bookRequest, User user, BookType bookType); +} 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 new file mode 100644 index 0000000..434ad74 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/util/impl/OrdersConverterImpl.java @@ -0,0 +1,22 @@ +package com.mindway.server.v2.domain.order.util.impl; + +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.util.OrdersConverter; +import com.mindway.server.v2.domain.user.entity.User; +import org.springframework.stereotype.Component; + +@Component +public class OrdersConverterImpl implements OrdersConverter { + @Override + public Orders toEntity(OrderRequest bookRequest, User user, BookType bookType) { + return Orders.builder() + .title(bookRequest.getTitle()) + .author(bookRequest.getAuthor()) + .bookURL(bookRequest.getBook_url()) + .bookType(bookType) + .user(user) + .build(); + } +} From afbf58f5d5322e744c1169bf7b6cb8bf9e4a4f21 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Fri, 5 Apr 2024 10:52:34 +0900 Subject: [PATCH 4/7] =?UTF-8?q?create=20::=20=EC=B1=85=20=EC=8B=A0?= =?UTF-8?q?=EC=B2=AD=20=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/BookRequestService.java | 8 +++++ .../service/impl/BookRequestServiceImpl.java | 31 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/order/service/BookRequestService.java create mode 100644 src/main/java/com/mindway/server/v2/domain/order/service/impl/BookRequestServiceImpl.java diff --git a/src/main/java/com/mindway/server/v2/domain/order/service/BookRequestService.java b/src/main/java/com/mindway/server/v2/domain/order/service/BookRequestService.java new file mode 100644 index 0000000..f7d7439 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/service/BookRequestService.java @@ -0,0 +1,8 @@ +package com.mindway.server.v2.domain.order.service; + +import com.mindway.server.v2.domain.order.entity.BookType; +import com.mindway.server.v2.domain.order.presentation.dto.request.OrderRequest; + +public interface BookRequestService { + void execute(BookType bookType, OrderRequest bookRequest); +} diff --git a/src/main/java/com/mindway/server/v2/domain/order/service/impl/BookRequestServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/order/service/impl/BookRequestServiceImpl.java new file mode 100644 index 0000000..fd7c242 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/service/impl/BookRequestServiceImpl.java @@ -0,0 +1,31 @@ +package com.mindway.server.v2.domain.order.service.impl; + +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.repository.OrdersRepository; +import com.mindway.server.v2.domain.order.service.BookRequestService; +import com.mindway.server.v2.domain.order.util.OrdersConverter; +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; + +@Service +@RequiredArgsConstructor +@Transactional(rollbackFor = {Exception.class}) +public class BookRequestServiceImpl implements BookRequestService { + + private final UserUtil userUtil; + private final OrdersRepository ordersRepository; + private final OrdersConverter ordersConverter; + + @Override + public void execute(BookType bookType, OrderRequest bookRequest) { + User user = userUtil.getCurrentUser(); + + Orders order = ordersConverter.toEntity(bookRequest, user, bookType); + ordersRepository.save(order); + } +} From ecdfb89f24466ce528c5915f38b3cb25111b0860 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Fri, 5 Apr 2024 11:13:44 +0900 Subject: [PATCH 5/7] =?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 --- .../order/presentation/OrdersController.java | 24 +++++++++++++++++++ .../security/config/SecurityConfig.java | 3 +++ 2 files changed, 27 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java 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 new file mode 100644 index 0000000..7b61478 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/order/presentation/OrdersController.java @@ -0,0 +1,24 @@ +package com.mindway.server.v2.domain.order.presentation; + +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.service.BookRequestService; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v2/order") +public class OrdersController { + private final BookRequestService bookRequestService; + + @PostMapping("/list") + public ResponseEntity bookRequest + (@RequestParam BookType type, @RequestBody @Valid OrderRequest bookRequest) { + bookRequestService.execute(type, bookRequest); + return ResponseEntity.ok().build(); + } + +} 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 3d984e1..6fd48b1 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 @@ -53,6 +53,9 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { // user .requestMatchers(HttpMethod.GET, "/api/v2/my").authenticated() + // orders + .requestMatchers(HttpMethod.POST, "/api/v2/order/{type}").authenticated() + .anyRequest().authenticated() ) From ecd26fe2c1caca323394b60e010ea779146a3fec Mon Sep 17 00:00:00 2001 From: taeyeon Date: Fri, 5 Apr 2024 12:05:17 +0900 Subject: [PATCH 6/7] =?UTF-8?q?refactor=20::=20endpoint=20=EC=88=98?= =?UTF-8?q?=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 +- .../server/v2/global/security/config/SecurityConfig.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 7b61478..beb1d99 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 @@ -14,7 +14,7 @@ public class OrdersController { private final BookRequestService bookRequestService; - @PostMapping("/list") + @PostMapping() public ResponseEntity bookRequest (@RequestParam BookType type, @RequestBody @Valid OrderRequest bookRequest) { bookRequestService.execute(type, bookRequest); 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 6fd48b1..ea1d3c7 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 @@ -54,7 +54,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .requestMatchers(HttpMethod.GET, "/api/v2/my").authenticated() // orders - .requestMatchers(HttpMethod.POST, "/api/v2/order/{type}").authenticated() + .requestMatchers(HttpMethod.POST, "/api/v2/order").authenticated() .anyRequest().authenticated() ) From 514c8b0bd4890e1670c1cc1dfa9e6471c09470e5 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Fri, 5 Apr 2024 12:18:27 +0900 Subject: [PATCH 7/7] =?UTF-8?q?refactor=20::=20status=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/v2/domain/order/presentation/OrdersController.java | 3 ++- 1 file changed, 2 insertions(+), 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 beb1d99..4340532 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 @@ -5,6 +5,7 @@ import com.mindway.server.v2.domain.order.service.BookRequestService; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -18,7 +19,7 @@ public class OrdersController { public ResponseEntity bookRequest (@RequestParam BookType type, @RequestBody @Valid OrderRequest bookRequest) { bookRequestService.execute(type, bookRequest); - return ResponseEntity.ok().build(); + return ResponseEntity.status(HttpStatus.CREATED).build(); } }