diff --git a/src/main/java/library/domain/Address.java b/src/main/java/library/domain/Address.java index 20a8f58..7768a1a 100644 --- a/src/main/java/library/domain/Address.java +++ b/src/main/java/library/domain/Address.java @@ -5,10 +5,16 @@ import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; import javax.persistence.Table; @Entity @Table(name="adres") +@NamedQueries({ + @NamedQuery(name="adres.all", query="SELECT a FROM Address a"), + @NamedQuery(name="adres.id", query="SELECT a FROM Address a WHERE a.id=:id") +}) public class Address implements IHaveId { @Id diff --git a/src/main/java/library/web/rest/AdressesResources.java b/src/main/java/library/web/rest/AdressesResources.java index 5d97c50..f0378b3 100644 --- a/src/main/java/library/web/rest/AdressesResources.java +++ b/src/main/java/library/web/rest/AdressesResources.java @@ -2,7 +2,13 @@ import java.util.List; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; @@ -15,21 +21,26 @@ import library.dao.repositories.IAdressRepository; import library.dao.repositories.impl.HsqlCatalogFactory; import library.domain.Address; +import library.domain.User; @Path("/adresses") @Stateless public class AdressesResources { - IAdressRepository _addresses; + + @PersistenceContext + EntityManager mgr; + + /*IAdressRepository _addresses; public AdressesResources() { // _addresses = new HsqlCatalogFactory().library().addresses(); - } + }*/ @GET @Produces(MediaType.APPLICATION_JSON) public Response getAll(@QueryParam("page") int page,@QueryParam("max") int max){ - List
addresses = _addresses.getPage(page, max); + List
addresses = mgr.createNamedQuery("adres.all", Address.class).getResultList(); if(addresses.isEmpty()) return Response.status(404).build(); return Response.ok(new GenericEntity>(addresses){}).build(); @@ -39,9 +50,56 @@ public Response getAll(@QueryParam("page") int page,@QueryParam("max") int max){ @Produces(MediaType.APPLICATION_JSON) @Path("/{id}") public Response get(@PathParam("id") int id){ - Address address = _addresses.get(id); - if(address==null) + List
address = mgr.createNamedQuery("adres.all", Address.class).setParameter("id", id).getResultList(); + if(address.isEmpty()) return Response.status(404).build(); return Response.ok(address).build(); } + + @POST + @Consumes(MediaType.APPLICATION_JSON) + public Response addAddress(Address address){ + mgr.persist(address); + return Response.ok().build(); + } + + @PUT + @Consumes(MediaType.APPLICATION_JSON) + @Path("/{id}") + public Response updateAddress(@PathParam("id") int id ,Address address){ + List
addresses = mgr.createNamedQuery("adres.id",Address.class) + .setParameter("id", id) + .getResultList(); + if(addresses.size()==0) + return Response.status(404).build(); + Address a = addresses.get(0); + a.setCity(address.getCity()); + a.setPostalCode(address.getPostalCode()); + a.setStreet(address.getStreet()); + a.setApNumber(address.getApNumber()); + + mgr.persist(a); + return Response.ok().build(); + } + + @DELETE + @Path("/{id}") + public Response deleteAddress(@PathParam("id") int id){ + List
addresses = mgr.createNamedQuery("adres.id",Address.class) + .setParameter("id", id) + .getResultList(); + if(addresses.size()==0) + return Response.status(404).build(); + mgr.remove(addresses.get(0)); + return Response.noContent().build(); + } + + @GET + @Path("/status") + @Produces(MediaType.TEXT_HTML) + public String test(){ + return "OK"; + } + + }