package com.h2rd.refactoring.web;
import com.h2rd.refactoring.usermanagement.User;
import com.h2rd.refactoring.usermanagement.UserDao;
import javax.ws.rs.*;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.Response;
import java.util.List;
@Path("/users")
public class UserResource{
public UserDao userDao;
@GET
@Path("find/")
public Response getUsers() {
if (userDao == null) {
userDao = UserDao.getUserDao();
}
GenericEntity<List<User>> usersEntity = new GenericEntity<List<User>>(userDao.getUsers()) {};
return Response.status(200).entity(usersEntity).build();
}
@GET
@Path("add/")
public Response addUser(@QueryParam("name") String name,
@QueryParam("email") String email,
@QueryParam("role") List<String> roles) {
User user = new User();
user.setName(name);
user.setEmail(email);
user.setRoles(roles);
if (userDao == null) {
userDao = UserDao.getUserDao();
}
userDao.saveUser(user);
return Response.ok().entity(user).build();
}
@GET
@Path("update/")
public Response updateUser(@QueryParam("name") String name,
@QueryParam("email") String email,
@QueryParam("role") List<String> roles) {
User user = new User();
user.setName(name);
user.setEmail(email);
user.setRoles(roles);
if (userDao == null) {
userDao = UserDao.getUserDao();
}
userDao.updateUser(user);
return Response.ok().entity(user).build();
}
@GET
@Path("delete/")
public Response deleteUser(@QueryParam("name") String name,
@QueryParam("email") String email,
@QueryParam("role") List<String> roles) {
User user = new User();
user.setName(name);
user.setEmail(email);
user.setRoles(roles);
if (userDao == null) {
userDao = UserDao.getUserDao();
}
userDao.deleteUser(user);
return Response.ok().entity(user).build();
}
@GET
@Path("search/")
public Response findUser(@QueryParam("name") String name) {
if (userDao == null) {
userDao = UserDao.getUserDao();
}
User user = userDao.findUser(name);
return Response.ok().entity(user).build();
}
}