1 package com.edf.gde.services;
3 import com.edf.gde.ejb.UserDAO;
4 import com.edf.gde.entities.Group;
5 import com.edf.gde.entities.User;
6 import com.edf.gde.transferables.CommandTO;
7 import com.edf.gde.transferables.GroupTO;
8 import com.edf.gde.transferables.LongListTO;
9 import com.edf.gde.transferables.UserTO;
10 import com.edf.gde.transferables.responses.CommandResultTO;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
19 public class UserService extends BaseService {
21 public static final int CREATEUSER = 1;
22 public static final int DELETEUSER = 2;
23 public static final int ADDTOGROUP = 3;
24 public static final int REMOVEFROMGROUP = 4;
25 public static final int CREATEGROUP = 5;
26 public static final int DELETEGROUP = 6;
27 public static final int FINDUSER = 7;
28 public static final int FINDGROUP = 8;
34 public void processRequest(HttpServletRequest request, HttpServletResponse response) {
35 CommandTO commandTO = getCommand(request);
36 CommandResultTO resultTO = new CommandResultTO();
38 switch (commandTO.getMethod()) {
40 UserTO userTO = createUser(fromJson(commandTO.getData(), UserTO.class));
41 setResult(resultTO, userTO);
45 long userId = commandTO.getLong("id");
46 CommandResultTO commandResultTO = new CommandResultTO();
47 if (!deleteUser(userId)) {
48 commandResultTO.setCode(CommandResultTO.ERROR);
53 String groupName = commandTO.getParameter("name");
54 GroupTO groupTO = createGroup(groupName);
55 setResult(resultTO, groupTO);
58 case REMOVEFROMGROUP: {
59 long groupId = commandTO.getLong("groupId");
60 long userId = commandTO.getLong("userId");
61 userDAO.removeFromGroup(groupId, userId);
65 String userName = commandTO.getString("username");
66 UserTO userTO = findUser(userName);
67 setResult(resultTO, userTO);
71 String groupName = commandTO.getString("groupname");
72 setResult(resultTO, findGroup(groupName));
76 long groupId = commandTO.getLong("id");
77 userDAO.deleteGroup(groupId);
81 long groupId = commandTO.getLong("groupId");
82 long userId = commandTO.getLong("userId");
83 addToGroup(groupId, userId);
87 } catch (RuntimeException ex) {
88 // Return error on any error...
89 resultTO.setCode(CommandResultTO.ERROR);
92 send(resultTO, response);
96 protected void setResult(CommandResultTO resultTO, Object data) {
97 resultTO.setData(toJson(data));
100 protected void addToGroup(long groupId, long userId) {
101 userDAO.addToGroup(groupId, userId);
104 protected GroupTO createGroup(String groupName) {
105 Group group = userDAO.createGroup(groupName);
106 return group.toGroupTO();
109 protected UserTO createUser(UserTO userTO) {
110 User user = userDAO.createUser(userTO.getName(), userTO.getPassword());
111 return user.toUserTO();
114 protected boolean deleteUser(long userId) {
115 return userDAO.deleteUser(userId);
118 protected UserTO findUser(String userName) {
119 User user = userDAO.findUser(userName);
120 UserTO userTO = user.toUserTO();
121 userTO.setPassword(null);
125 protected GroupTO findGroup(String groupName) {
126 Group group = userDAO.findGroup(groupName);
127 return group.toGroupTO();
130 protected boolean deleteGroup(long id) {
131 return userDAO.deleteGroup(id);