@RestController
public class OrderController {
private final OrderRepository orderRepo;
// 注文情報を取得するための準備
public OrderController(OrderRepository orderRepo) {
this.orderRepo = orderRepo;
}
@GetMapping("/orders/{id}")
public OrderDto getOrder(@PathVariable Long id) {
// 注文情報の取得
Order order = orderRepo.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("注文が見つかりません"));
// 注文情報のチェック
if (!order.getStatus().equals("ACTIVE")) {
throw new IllegalStateException("注文が無効です");
}
// 注文情報の変換・表示
return new OrderDto(order.getId(), order.getTotal());
}
}
@RestController
public class OrderController {
private final OrderService orderService;
public OrderController(OrderService orderService) {
this.orderService = orderService;
}
@GetMapping("/orders/{id}")
public OrderDto getOrder(@PathVariable Long id) {
// サービスから取得した注文情報を返却するだけ
return orderService.getActiveOrder(id);
}
}
@Service
public class OrderService {
private final OrderRepository orderRepo;
public OrderService(OrderRepository orderRepo) {
this.orderRepo = orderRepo;
}
public OrderDto getActiveOrder(Long id) {
// 注文情報の取得
Order order = orderRepo.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("注文が見つかりません"));
// 注文情報のチェック
if (!"ACTIVE".equals(order.getStatus())) {
throw new IllegalStateException("注文が無効です");
}
// 注文情報のオブジェクトを変換して返却
return new OrderDto(order.getId(), order.getTotal());
}
}
コメント