package com.ankurm.aotcache; import java.net.URI; import jakarta.validation.Valid; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class OrderController { private final OrderService service; public OrderController(OrderService service) { this.service = service; } @GetMapping("/ping") public String ping() { return "ok"; } @PostMapping("/orders") public ResponseEntity create(@Valid @RequestBody NewOrder body) { Order o = service.create(body); return ResponseEntity.created(URI.create("/orders/" + o.id())).body(o); } @GetMapping("/orders/{id}") public ResponseEntity get(@PathVariable long id) { return service.find(id).map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build()); } }