58 lines
1.9 KiB
Java
58 lines
1.9 KiB
Java
package com.jdbernard.nlsongs.rest;
|
|
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import javax.ws.rs.GET;
|
|
import javax.ws.rs.POST;
|
|
import javax.ws.rs.PUT;
|
|
import javax.ws.rs.Consumes;
|
|
import javax.ws.rs.Path;
|
|
import javax.ws.rs.PathParam;
|
|
import javax.ws.rs.Produces;
|
|
import javax.ws.rs.core.MediaType;
|
|
|
|
import com.jdbernard.nlsongs.servlet.NLSongsContext;
|
|
import com.jdbernard.nlsongs.model.Service;
|
|
|
|
@Path("v1/services")
|
|
@Produces({MediaType.APPLICATION_JSON})
|
|
@Consumes({MediaType.APPLICATION_JSON})
|
|
public class ServicesResource {
|
|
|
|
@GET
|
|
public List<Service> getServices() {
|
|
return NLSongsContext.songsDB.findAllServices(); }
|
|
|
|
@POST
|
|
public Service postService(Service service) {
|
|
return NLSongsContext.songsDB.create(service); }
|
|
|
|
@GET @Path("/{serviceId}")
|
|
public Service getService(@PathParam("serviceId") int serviceId) {
|
|
return NLSongsContext.songsDB.findService(serviceId); }
|
|
|
|
@PUT @Path("/{serviceId}")
|
|
public Service putService(@PathParam("serviceId") int serviceId,
|
|
Service service) {
|
|
service.setId(serviceId);
|
|
NLSongsContext.songsDB.update(service);
|
|
return service; }
|
|
|
|
@GET @Path("/withSong/{songId}")
|
|
public List<Service> getServicesForSong(@PathParam("songId") int songId) {
|
|
return NLSongsContext.songsDB.findServicesForSongId(songId); }
|
|
|
|
@GET @Path("/byDate/after/{date}")
|
|
public List<Service> getServicesAfter(@PathParam("date") Date date) {
|
|
return NLSongsContext.songsDB.findServicesAfter(date); }
|
|
|
|
@GET @Path("/byDate/before/{date}")
|
|
public List<Service> getServicesBefore(@PathParam("date") Date date) {
|
|
return NLSongsContext.songsDB.findServicesBefore(date); }
|
|
|
|
@GET @Path("/byDate/between/{b}/{e}")
|
|
public List<Service> getServicesBetween
|
|
(@PathParam("b") Date b, @PathParam("e") Date e) {
|
|
return NLSongsContext.songsDB.findServicesBetween(b, e); }
|
|
}
|