package net.olemartin.service.person; import io.dropwizard.auth.Auth; import net.olemartin.domain.Person; import net.olemartin.domain.Tournament; import net.olemartin.domain.User; import net.olemartin.domain.view.PersonView; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.util.List; @Path("person") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Service @Resource public class PersonResource { private PersonService personService; @Autowired public PersonResource(PersonService personService) { this.personService = personService; } @Path("/list") @POST public List<Person> getPersonsNotInTournament(Tournament tournament) { return personService.getPersonsNotInTournament(tournament.getId()); } @GET public List<PersonView> getAllPersons() { return personService.getPersons(); } @Path("/{id}") @GET public PersonView getPerson(@PathParam("id") Long id) { return personService.getPerson(id); } @Path("/{id}/ratings") @GET public List getRatings(@PathParam("id") Long id) { return personService.getRatings(id); } @Path("/{id}") @DELETE public String deletePerson(@Auth User user, @PathParam("id") Long id) { personService.deletePerson(id); return "OK"; } @Path("/new") @POST public Person createPerson(@Auth User user, Person person) { return personService.createPerson(person); } }