Package com.proyecto.jpa.controller
Class OrderController
java.lang.Object
com.proyecto.jpa.controller.OrderController
Controlador REST para la gestión de pedidos (Capa de Presentación).
Expone endpoints HTTP para realizar operaciones CRUD sobre pedidos, gestionar su estado y consultar pedidos por cliente.
Arquitectura de 3 Capas
OrderController (Capa de Presentación) ← Esta clase
↓
OrderService (Capa de Negocio)
↓
OrderRepository (Capa de Datos)
- Since:
- 1.0.0
- Version:
- 1.0.0
- Author:
- Proyecto JPA
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<Order>cancelOrder(Long id) Cancela un pedido.org.springframework.http.ResponseEntity<Long>Cuenta el número total de pedidos.org.springframework.http.ResponseEntity<Order>createOrder(@Valid Order order) Crea un nuevo pedido.org.springframework.http.ResponseEntity<Void>deleteOrder(Long id) Elimina un pedido por su ID.Obtiene todos los pedidos.org.springframework.http.ResponseEntity<Order>getOrderById(Long id) Obtiene un pedido por su ID.org.springframework.http.ResponseEntity<Order>getOrderByOrderNumber(String orderNumber) Busca un pedido por su número de orden.getOrdersByCustomer(Long customerId) Obtiene pedidos por cliente.getOrdersByStatus(Order.OrderStatus status) Obtiene pedidos por estado.getOrdersWithItemsByCustomer(Long customerId) Obtiene pedidos con sus items por cliente (optimizado con JOIN FETCH).org.springframework.http.ResponseEntity<Order>updateOrder(Long id, @Valid Order order) Actualiza un pedido existente.org.springframework.http.ResponseEntity<Order>updateOrderStatus(Long id, Order.OrderStatus status) Actualiza el estado de un pedido.
-
Constructor Details
-
OrderController
-
-
Method Details
-
getAllOrders
Obtiene todos los pedidos.- Returns:
- lista de pedidos con código 200 OK
-
getOrderById
@GetMapping("/{id}") public org.springframework.http.ResponseEntity<Order> getOrderById(@PathVariable Long id) Obtiene un pedido por su ID.- Parameters:
id- el ID del pedido- Returns:
- el pedido con código 200 OK, o 404 Not Found si no existe
-
getOrdersByCustomer
@GetMapping("/customer/{customerId}") public org.springframework.http.ResponseEntity<List<Order>> getOrdersByCustomer(@PathVariable Long customerId) Obtiene pedidos por cliente.- Parameters:
customerId- el ID del cliente- Returns:
- lista de pedidos del cliente
-
getOrdersWithItemsByCustomer
@GetMapping("/customer/{customerId}/with-items") public org.springframework.http.ResponseEntity<List<Order>> getOrdersWithItemsByCustomer(@PathVariable Long customerId) Obtiene pedidos con sus items por cliente (optimizado con JOIN FETCH).- Parameters:
customerId- el ID del cliente- Returns:
- lista de pedidos con items precargados
-
getOrdersByStatus
@GetMapping("/status/{status}") public org.springframework.http.ResponseEntity<List<Order>> getOrdersByStatus(@PathVariable Order.OrderStatus status) Obtiene pedidos por estado.- Parameters:
status- el estado del pedido- Returns:
- lista de pedidos con ese estado
-
getOrderByOrderNumber
@GetMapping("/number/{orderNumber}") public org.springframework.http.ResponseEntity<Order> getOrderByOrderNumber(@PathVariable String orderNumber) Busca un pedido por su número de orden.- Parameters:
orderNumber- el número de orden- Returns:
- el pedido con código 200 OK, o 404 Not Found si no existe
-
createOrder
@PostMapping public org.springframework.http.ResponseEntity<Order> createOrder(@Valid @RequestBody @Valid Order order) Crea un nuevo pedido.- Parameters:
order- el pedido a crear- Returns:
- el pedido creado con código 201 Created
-
updateOrder
@PutMapping("/{id}") public org.springframework.http.ResponseEntity<Order> updateOrder(@PathVariable Long id, @Valid @RequestBody @Valid Order order) Actualiza un pedido existente.- Parameters:
id- el ID del pedido a actualizarorder- los nuevos datos del pedido- Returns:
- el pedido actualizado con código 200 OK
-
updateOrderStatus
@PatchMapping("/{id}/status") public org.springframework.http.ResponseEntity<Order> updateOrderStatus(@PathVariable Long id, @RequestParam Order.OrderStatus status) Actualiza el estado de un pedido.- Parameters:
id- el ID del pedidostatus- el nuevo estado- Returns:
- el pedido actualizado con código 200 OK
-
cancelOrder
@PostMapping("/{id}/cancel") public org.springframework.http.ResponseEntity<Order> cancelOrder(@PathVariable Long id) Cancela un pedido.- Parameters:
id- el ID del pedido a cancelar- Returns:
- el pedido cancelado con código 200 OK
-
deleteOrder
@DeleteMapping("/{id}") public org.springframework.http.ResponseEntity<Void> deleteOrder(@PathVariable Long id) Elimina un pedido por su ID.Operación en Cascada: Al eliminar el pedido, todos sus items asociados se eliminarán automáticamente.
- Parameters:
id- el ID del pedido a eliminar- Returns:
- código 204 No Content si se eliminó
-
countOrders
Cuenta el número total de pedidos.- Returns:
- el número de pedidos con código 200 OK
-