Advertisement
Guest User

rzeczywista implementacja

a guest
Feb 23rd, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. package com.kodilla.ecommercee.service;
  2.  
  3. import com.kodilla.ecommercee.domain.Order;
  4. import com.kodilla.ecommercee.repository.OrderRepository;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7.  
  8. import java.util.List;
  9. import java.util.Optional;
  10.  
  11. @Service
  12. public class DbService {
  13. @Autowired
  14. private OrderRepository repository;
  15.  
  16. public List<Order> getAllOrders() {
  17. return repository.findAll();
  18. }
  19.  
  20.  
  21. public Order saveOrder(final Order order) {
  22. return repository.save(order);
  23.  
  24. }
  25.  
  26. public Optional<Order> getOrder(final Long id) {
  27. return repository.findById(id);
  28. }
  29.  
  30. public void deleteOrder(Long id) {
  31. repository.deleteById(id);
  32.  
  33. }
  34.  
  35. }
  36.  
  37.  
  38. package com.kodilla.ecommercee.mapper;
  39.  
  40. import com.kodilla.ecommercee.domain.Order;
  41. import com.kodilla.ecommercee.domain.OrderDto;
  42. import org.springframework.stereotype.Component;
  43.  
  44. import java.util.List;
  45. import java.util.stream.Collectors;
  46.  
  47. @Component
  48. public class OrderMapper {
  49. public Order mapToOrder(final OrderDto orderDto){
  50. return new Order(
  51. orderDto.getId(),
  52. orderDto.getDateOfCreation(),
  53. orderDto.getDateOfShipment(),
  54. orderDto.getShippingAdress(),
  55. orderDto.isOrdered());
  56.  
  57. }
  58.  
  59. public OrderDto mapToOrderDto(final Order order){
  60. return new OrderDto(
  61. order.getId(),
  62. order.getDateOfCreation(),
  63. order.getDateOfShipment(),
  64. order.getShippingAdress(),
  65. order.isOrdered());
  66.  
  67.  
  68. }
  69.  
  70. public List<OrderDto>mapToOrderDtoList(final List<Order> orderList){
  71. return orderList.stream()
  72. .map(t->new OrderDto(t.getId(),t.getDateOfCreation(),t.getDateOfShipment(),t.getShippingAdress(),t.isOrdered()))
  73. .collect(Collectors.toList());
  74. }
  75. }
  76.  
  77. package com.kodilla.ecommercee.controller;
  78.  
  79. import com.kodilla.ecommercee.domain.OrderDto;
  80. import com.kodilla.ecommercee.mapper.OrderMapper;
  81. import com.kodilla.ecommercee.service.DbService;
  82. import org.springframework.beans.factory.annotation.Autowired;
  83. import org.springframework.http.MediaType;
  84. import org.springframework.web.bind.annotation.*;
  85. import java.util.List;
  86.  
  87. @RestController
  88. @RequestMapping(value = "/v1/project/order",consumes = MediaType.APPLICATION_JSON_VALUE)
  89.  
  90. public class OrderController {
  91.  
  92. @Autowired
  93. private DbService service;
  94. @Autowired
  95. private OrderMapper orderMapper;
  96.  
  97. @RequestMapping(method = RequestMethod.GET, value = "getOrders")
  98. public List<OrderDto> getOrders() {
  99. return orderMapper.mapToOrderDtoList(service.getAllOrders());
  100. }
  101.  
  102. @RequestMapping(method = RequestMethod.GET, value = "getOrder")
  103. public OrderDto getOrder( @RequestParam Long orderId) throws OrderNotFoundException{
  104. return orderMapper.mapToOrderDto(service.getOrder(orderId).orElseThrow(OrderNotFoundException::new));
  105. }
  106.  
  107. @RequestMapping(method = RequestMethod.POST, value = "addOrder")
  108. public void addOrder( OrderDto orderDto) {
  109. service.saveOrder(orderMapper.mapToOrder(orderDto));
  110. }
  111.  
  112. @RequestMapping(method = RequestMethod.PUT, value = "updateOrder")
  113. public OrderDto updateOrder(@RequestBody OrderDto orderDto) {
  114. return orderMapper.mapToOrderDto(service.saveOrder(orderMapper.mapToOrder(orderDto)));
  115. }
  116.  
  117. @RequestMapping(method = RequestMethod.DELETE, value = "deleteOrder")
  118. public void deleteOrder(@RequestParam Long orderId) {
  119. service.deleteOrder(orderId);
  120. }
  121. }
  122.  
  123.  
  124. package com.kodilla.ecommercee.domain;
  125.  
  126. import lombok.AllArgsConstructor;
  127. import lombok.Getter;
  128. import lombok.NoArgsConstructor;
  129. import java.time.LocalDateTime;
  130.  
  131. @Getter
  132. @AllArgsConstructor
  133. @NoArgsConstructor
  134.  
  135. public class OrderDto {
  136.  
  137. private Long id;
  138. private LocalDateTime dateOfCreation;
  139. private LocalDateTime dateOfShipment;
  140. private String shippingAdress;
  141. private boolean isOrdered;
  142.  
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement