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
6 changes: 5 additions & 1 deletion src/main/java/library/domain/Person.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;


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


Expand Down
7 changes: 6 additions & 1 deletion src/main/java/library/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;

@Entity
@NamedQuery(name = "users.all", query="SELECT a FROM User a")
@NamedQueries({
@NamedQuery(name = "users.all", query="SELECT u FROM User u"),
@NamedQuery(name = "users.id", query="SELECT u FROM User u WHERE u.id=:id")
})
public class User implements IHaveId {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
93 changes: 93 additions & 0 deletions src/main/java/library/web/rest/PersonResources.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
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 library.dao.repos.IPersonRepository;
import library.domain.Person;

@Path("/persons")
@Stateless
public class PersonResources {

@PersistenceContext
EntityManager mgr;

IPersonRepository _perons;

public PersonResources() {}

@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getAllPersons(){
return
Response.ok(new GenericEntity<List<Person>>(
mgr.createNamedQuery("persons.all", Person.class).getResultList()){})
.build();
}

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response insertPerson(Person person){
mgr.persist(person);
return Response.ok().build();
}

@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getPerson(@PathParam("id") int id){
Person result = mgr.createNamedQuery("persons.id", Person.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){
Person result = mgr.createNamedQuery("persons.id", Person.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, Person person){

Person result = mgr.createNamedQuery("persons.id", Person.class)
.setParameter("id", id)
.getSingleResult();
if(result==null)
return Response.status(404).build();
result.setName(person.getName());
result.setSurname(person.getSurname());
mgr.persist(result);

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

}
94 changes: 94 additions & 0 deletions src/main/java/library/web/rest/UserResources.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
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 library.dao.repos.IUserRepository;
import library.domain.User;

@Path("/users")
@Stateless
public class UserResources {

@PersistenceContext
EntityManager mgr;

IUserRepository _users;

public UserResources() {}

@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getAllUsers(){
return
Response.ok(new GenericEntity<List<User>>(
mgr.createNamedQuery("users.all", User.class).getResultList()){})
.build();
}

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response insertUser(User user){
mgr.persist(user);
return Response.ok().build();
}

@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(@PathParam("id") int id){
User result = mgr.createNamedQuery("users.id", User.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){
User result = mgr.createNamedQuery("users.id", User.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, User user){

User result = mgr.createNamedQuery("users.id", User.class)
.setParameter("id", id)
.getSingleResult();
if(result==null)
return Response.status(404).build();
result.setLogin(user.getLogin());
result.setPassword(user.getPassword());
result.setEmail(user.getEmail());
mgr.persist(result);

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

}