]> SALOME platform Git repositories - modules/gde.git/blob - projects/GDE_App/GDE-war/src/java/com/edf/gde/services/StudyService.java
Salome HOME
Added user's permissions
[modules/gde.git] / projects / GDE_App / GDE-war / src / java / com / edf / gde / services / StudyService.java
1 /*
2  * (C) 2015 EDF
3  */
4 package com.edf.gde.services;
5
6 import com.edf.gde.ejb.PermissionsManagerEJB;
7 import com.edf.gde.ejb.StudyEJB;
8 import com.edf.gde.ejb.UserEJB;
9 import com.edf.gde.tools.Credentials;
10 import com.edf.gde.transferables.CommandTO;
11 import com.edf.gde.transferables.StudyTO;
12 import com.edf.gde.transferables.responses.CommandResultTO;
13 import java.util.logging.Logger;
14 import javax.ejb.EJB;
15 import javax.servlet.http.HttpServletRequest;
16 import javax.servlet.http.HttpServletResponse;
17
18 /**
19  *
20  * @author Kavoos
21  */
22 public class StudyService extends BaseService {
23
24     public static final String ServiceName = "StudyService";
25     public static final int CREATESTUDY = 1;
26     public static final int SETSTUDYSTATE = 2;
27     public static final int READSTUDY = 3;
28     public static final int DELETESTUDY = 4;
29     @EJB
30     private StudyEJB studyEjb;
31     @EJB
32     private UserEJB userEjb;
33     @EJB
34     private PermissionsManagerEJB pm;
35
36     @Override
37     public void processRequest(HttpServletRequest request, HttpServletResponse response) {
38         Logger logger = Logger.getLogger(ServiceName);
39         CommandTO commandTO = getCommand(request);
40         CommandResultTO resultTO = new CommandResultTO();
41         Credentials credentials = getCredentials(request);
42         userEjb.checkPassword(credentials.getLogin(), credentials.getPassword());
43         pm.checkPermission(credentials.getLogin(), ServiceName, commandTO.getMethod());
44         try {
45             switch (commandTO.getMethod()) {
46                 case CREATESTUDY: {
47                     StudyTO studyTO = fromJson(commandTO.getData(), StudyTO.class);
48                     StudyTO newStudyTO = studyEjb.createStudy(userEjb.findUser(credentials.getLogin()).getId(),studyTO);
49                     resultTO.setData(toJson(newStudyTO));
50                 }
51                 break;
52                 case SETSTUDYSTATE: {
53                     long studyId = commandTO.getLong("studyId");
54                     int lock = commandTO.getInt("lock");
55                     boolean status = (lock == 1);
56                     studyEjb.setStudyState(userEjb.findUser(credentials.getLogin()).getId(),studyId, status);
57                 }
58                 break;
59                 case READSTUDY: {
60                     long studyId = commandTO.getLong("studyId");
61                     StudyTO studyTO = studyEjb.findById(studyId);
62                     resultTO.setData(toJson(studyTO));
63                 }
64                 break;
65                 case DELETESTUDY: {
66                     long studyId = commandTO.getLong("studyId");
67                     studyEjb.deleteStudy(studyId);
68                 }
69                 break;
70             }
71         } catch (Exception ex) {
72             // Return error on any error...
73             resultTO.setCode(CommandResultTO.ERROR);
74             resultTO.setMsg(ex.getMessage());
75             ex.printStackTrace();
76         } finally {
77             send(resultTO, response);
78         }
79     }
80
81 }