Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion src/main/java/library/domain/Address.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
package library.domain;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

import library.web.rest.AdressResources;

@Entity
@NamedQueries({
@NamedQuery(name = "adresses.all", query="SELECT a FROM Adress a"),
@NamedQuery(name = "adresses.id", query="SELECT a FROM Adress a WHERE a.id=:id")
})
public class Address implements IHaveId{

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String street;
private String city;
Expand All @@ -14,6 +32,10 @@ public class Address implements IHaveId{
public Address() {
super();
}


@ManyToMany(mappedBy="adresses")
private List<Person> adresses;

public Address(int id, String street, String city, String postCode, String country, String houseNumber, String localNumber, String phone) {
super();
Expand Down
104 changes: 104 additions & 0 deletions src/main/java/library/web/rest/AdressResources.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package library.web.rest;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.websocket.server.PathParam;
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.Produces;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import com.sun.mail.imap.protocol.Status;

import library.dao.repos.IAuthorRepository;
import library.dao.repos.impl.HsqlDbCatalogFactory;
import library.dao.repos.IAddressRepository;
import library.domain.Address;

@Path("/address")
@Stateless
public class AdressResources {

@PersistenceContext
EntityManager mgr;

IAddressRepository _address;

public AdressResources(){

}

@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getAllAdresses(){
return
Response.ok(new GenericEntity<List<Address>>(
mgr.createNamedQuery("address.all", Address.class).getResultList()){

})
.build();

}
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response insertAddress(Address address){
mgr.persist(address);
return Response.ok().build();
}

@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getAddress(@PathParam("id") int id){
Address result = mgr.createNamedQuery("address.id", Address.class)
.setParameter("id", id)
.getSingleResult();

if(result == null)
return Response.status(404).build();

return Response.ok(result).build();
}

@DELETE
@Path("/{id}")
public Response delete(@PathParam("id") int id){
Address result = mgr.createNamedQuery("address.id", Address.class)
.setParameter("id", id)
.getSingleResult();
if(result==null)
return Response.status(404).build();
mgr.remove(result);
return Response.ok().build();
}

@PUT
@Path("/{id}")
@Consumes(MediaType.APPLICATION_JSON)
public Response update(@PathParam("id") int id, Address address){

Address result = mgr.createNamedQuery("address.id", Address.class)
.setParameter("id", id)
.getSingleResult();
if(result==null)
return Response.status(404).build();
result.setStreet(address.getStreet());
mgr.persist(result);

return Response.ok().build();
}





}