package org.nisum.example.SplunkLogging.controller; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nisum.example.SplunkLogging.dto.Order; import org.nisum.example.SplunkLogging.service.OrderService; import org.nisum.example.SplunkLogging.util.Mapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/order") public class OrderController { Logger logger = LogManager.getLogger(OrderController.class); @Autowired private OrderService service; @PostMapping public Order placeOrder(@RequestBody Order order) { logger.info("OrderController:placeOrder persist order request {}", Mapper.mapToJsonString(order)); Order addOrder = service.addOrder(order); logger.info("OrderController:placeOrder response from service {}", Mapper.mapToJsonString(addOrder)); return addOrder; } @GetMapping public List<Order> getOrders() { List<Order> orders = service.getOrders(); logger.info("OrderController:getOrders response from service {}", Mapper.mapToJsonString(orders)); return orders; } @GetMapping("/{id}") public Order getOrder(@PathVariable int id) { logger.info("OrderController:getOrder fetch order by id {}", id); Order order = service.getOrder(id); logger.info("OrderController:getOrder fetch order response {}", Mapper.mapToJsonString(order)); return order; } }