Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package uk.ac.man.cs.eventlite.controllers;
- import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
- import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
- import java.util.ArrayList;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.hateoas.Link;
- import org.springframework.hateoas.MediaTypes;
- import org.springframework.hateoas.Resource;
- import org.springframework.hateoas.Resources;
- import org.springframework.http.MediaType;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- import uk.ac.man.cs.eventlite.dao.EventService;
- import uk.ac.man.cs.eventlite.entities.Event;
- @RestController
- @RequestMapping(value = "/api/events", produces = { MediaType.APPLICATION_JSON_VALUE, MediaTypes.HAL_JSON_VALUE })
- public class EventsControllerApi {
- @Autowired
- private EventService eventService;
- @RequestMapping(method = RequestMethod.GET)
- public Resources<Resource<Event>> getAllEvents() {
- return eventToResource(eventService.findAll());
- }
- private Resource<Event> eventToResource(Event event) {
- Link selfLink = linkTo(EventsControllerApi.class).slash(event.getId()).withSelfRel();
- return new Resource<Event>(event, selfLink);
- }
- private Resources<Resource<Event>> eventToResource(Iterable<Event> events) {
- Link selfLink = linkTo(methodOn(EventsControllerApi.class).getAllEvents()).withSelfRel();
- List<Resource<Event>> resources = new ArrayList<Resource<Event>>();
- for (Event event : events) {
- resources.add(eventToResource(event));
- }
- return new Resources<Resource<Event>>(resources, selfLink);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement