diff --git a/module-ejb/src/main/java/pl/myboardgames/UserDao.java b/module-ejb/src/main/java/pl/myboardgames/UserDao.java index 961dace..2f7f0c0 100644 --- a/module-ejb/src/main/java/pl/myboardgames/UserDao.java +++ b/module-ejb/src/main/java/pl/myboardgames/UserDao.java @@ -1,10 +1,10 @@ package pl.myboardgames; import java.util.HashSet; -import java.util.List; import java.util.Set; import javax.ejb.Stateless; import javax.persistence.EntityManager; +import javax.persistence.EntityNotFoundException; import javax.persistence.PersistenceContext; import javax.persistence.Query; @@ -26,7 +26,12 @@ public class UserDao { } public UserEntity getById(Long aId) { - return em.find(UserEntity.class, aId); + UserEntity user = em.find(UserEntity.class, aId); + if (user == null) { + throw new EntityNotFoundException("Can't find User for ID " + + aId); + } + return user; } public UserEntity add(UserEntity aUser) { @@ -34,6 +39,25 @@ public class UserDao { return aUser; } + public Boolean remove(Long aId) { + UserEntity user = em.find(UserEntity.class, aId); + if (user == null) { + throw new EntityNotFoundException("Can't find User for ID " + + aId); + } + em.remove(user); + return true; + } + + public UserEntity update(Long aId, UserEntity aUser){ + UserEntity user = em.find(UserEntity.class, aId); + if (aUser == null) { + throw new EntityNotFoundException("Can't find User for ID " + + aId); + } + em.merge(aUser); + return user; + } } diff --git a/module-ejb/src/main/java/pl/myboardgames/UserEntity.java b/module-ejb/src/main/java/pl/myboardgames/UserEntity.java index 484f743..e3e7276 100644 --- a/module-ejb/src/main/java/pl/myboardgames/UserEntity.java +++ b/module-ejb/src/main/java/pl/myboardgames/UserEntity.java @@ -25,7 +25,7 @@ public class UserEntity { @Column(name = "id", updatable = false, nullable = false) private Long id; private String username; - + private String address; public Long getId() { return id; @@ -35,6 +35,10 @@ public class UserEntity { return username; } + public String getAddress() { + return address; + } + public void setId(Long id) { this.id = id; } @@ -43,6 +47,10 @@ public class UserEntity { this.username = username; } + public void setAddress(String address) { + this.address = address; + } + } diff --git a/module-web/src/main/java/pl/myboardgames/UserController.java b/module-web/src/main/java/pl/myboardgames/UserController.java index edd9f18..f75ee79 100644 --- a/module-web/src/main/java/pl/myboardgames/UserController.java +++ b/module-web/src/main/java/pl/myboardgames/UserController.java @@ -4,8 +4,10 @@ import java.util.stream.Collectors; import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; 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; @@ -43,6 +45,25 @@ public class UserController { return Response.status(201).entity(ret).build(); } + @DELETE + @Path("{id}") + @Produces("application/json; charset=UTF-8") + public Response removeUser(@PathParam("id") Long aId) { + Boolean ret = userDatabase.remove(aId); + return Response.status(201).entity(ret).build(); + } + + @PUT + @Path("{id}") + @Consumes("application/json; charset=UTF-8") + @Produces("application/json; charset=UTF-8") + public Response updateUser(UserDto aUser, @PathParam("id") Long aId) { + UserEntity user = UserMapper.fromDto(aUser); + user.setId(aId); + UserDto ret = new UserDto(userDatabase.update(aId,user)); + return Response.status(201).entity(ret).build(); + } + } diff --git a/module-web/src/main/java/pl/myboardgames/UserDto.java b/module-web/src/main/java/pl/myboardgames/UserDto.java index 8ff5452..6834008 100644 --- a/module-web/src/main/java/pl/myboardgames/UserDto.java +++ b/module-web/src/main/java/pl/myboardgames/UserDto.java @@ -5,7 +5,6 @@ */ package pl.myboardgames; - /** * * @author Nao @@ -14,18 +13,27 @@ public class UserDto { private Long id; private String username; - + private String address; + public UserDto() { - - } - - public UserDto(String username) { - this.username = username; + } public UserDto(UserEntity aUser) { - this.username = aUser.getUsername(); - this.id = aUser.getId(); + username = aUser.getUsername(); + id = aUser.getId(); + } + + public Long getId() { + return id; + } + + public String getUsername() { + return username; + } + + public String getAddress() { + return address; } public void setId(Long id) { @@ -36,13 +44,8 @@ public class UserDto { this.username = username; } - - public Long getId() { - return id; - } - - public String getUsername() { - return username; + public void setAddress(String address) { + this.address = address; } } diff --git a/module-web/src/main/java/pl/myboardgames/UserMapper.java b/module-web/src/main/java/pl/myboardgames/UserMapper.java index c55e4e8..d52dbdb 100644 --- a/module-web/src/main/java/pl/myboardgames/UserMapper.java +++ b/module-web/src/main/java/pl/myboardgames/UserMapper.java @@ -22,6 +22,15 @@ class UserMapper { return ret; } + + public static UserEntity fromShortDto(UserShortDto aUser) { + UserEntity ret = new UserEntity(); + + ret.setUsername(aUser.getUsername()); + ret.setId(aUser.getId()); + + return ret; + } diff --git a/module-web/src/main/java/pl/myboardgames/UserShortDto.java b/module-web/src/main/java/pl/myboardgames/UserShortDto.java index 6361a06..0835ef0 100644 --- a/module-web/src/main/java/pl/myboardgames/UserShortDto.java +++ b/module-web/src/main/java/pl/myboardgames/UserShortDto.java @@ -13,10 +13,12 @@ public class UserShortDto { private Long id; private String username; + private String address; public UserShortDto(UserEntity aUser) { id = aUser.getId(); username = aUser.getUsername(); + address = aUser.getUsername(); } public Long getId() { @@ -27,4 +29,10 @@ public class UserShortDto { return username; } + public String getAddress() { + return address; + } + + + }