EventController.java

package mirante.api.event;

import java.util.List;

import org.springframework.web.bind.annotation.*;
import org.springframework.http.HttpStatus;
import org.springframework.web.server.ResponseStatusException;

@CrossOrigin
@RestController
class EventController {
  private final EventRepository repository;

  EventController(EventRepository repository) {
    this.repository = repository;
  }

  @GetMapping("/event")
  List<Event> all() {
    return repository.findAll();
  }

  @PostMapping("/event")
  @ResponseStatus(HttpStatus.CREATED)
  Event newEvent(@RequestBody Event newEvent) {
    return repository.save(newEvent);
  }

  @GetMapping("/event/{id}")
  Event one(@PathVariable String id) {
    return repository.findById(id)
      .orElseThrow(() -> new ResponseStatusException(
            HttpStatus.NOT_FOUND, "Event with id ${id} not found")
          );
  }
}