Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 47d0b110

Přidáno uživatelem Tomáš Šimandl před více než 6 roky(ů)

Created save diagram servlet

Zobrazit rozdíly:

sources/src/main/java/cz/zcu/kiv/offscreen/servlets/actions/SaveDiagram.java
1
package cz.zcu.kiv.offscreen.servlets.actions;
2

  
3
import com.google.common.base.Strings;
4
import cz.zcu.kiv.offscreen.user.DB;
5
import cz.zcu.kiv.offscreen.user.Diagram;
6
import org.apache.commons.lang.StringUtils;
7

  
8
import javax.servlet.ServletException;
9
import javax.servlet.http.HttpServlet;
10
import javax.servlet.http.HttpServletRequest;
11
import javax.servlet.http.HttpServletResponse;
12
import java.io.IOException;
13
import java.util.HashMap;
14
import java.util.Map;
15

  
16
public class SaveDiagram extends HttpServlet {
17

  
18
    @Override
19
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
20

  
21
        // user is not logged in
22
        if (request.getSession().getAttribute("logged_user_id") == null) {
23
            response.sendError(response.SC_UNAUTHORIZED);
24
            return;
25
        }
26

  
27
        Integer loggedUserId = Integer.parseInt(request.getSession().getAttribute("logged_user_id").toString());
28
        String name = request.getParameter("name");
29
        String graphJson = request.getParameter("graph_json");
30
        String isPublic = StringUtils.defaultIfBlank(request.getParameter("public"), "0");
31

  
32
        // input parameters are invalid
33
        if (Strings.isNullOrEmpty(name) || Strings.isNullOrEmpty(graphJson)) {
34
            response.sendError(response.SC_BAD_REQUEST);
35
            return;
36
        }
37

  
38
        DB db = new DB(getServletContext());
39
        Diagram diagram;
40

  
41
        if (request.getParameter("diagram_id") == null) {
42
            // new diagram
43
            diagram = new Diagram(db);
44

  
45
        } else {
46
            // diagram exists
47
            Integer diagramId = Integer.parseInt(request.getParameter("diagram_id"));
48
            diagram = new Diagram(db, diagramId);
49

  
50
            // user is not owner of the diagram
51
            if (loggedUserId != diagram.getUserId()) {
52
                response.sendError(response.SC_UNAUTHORIZED);
53
                return;
54
            }
55
        }
56

  
57

  
58
        Map<String, String> diagramParams = new HashMap<>();
59
        diagramParams.put("name", name);
60
        diagramParams.put("public", isPublic);
61
        diagramParams.put("graph_json", graphJson);
62
        diagramParams.put("user_id", loggedUserId.toString());
63

  
64
        diagram.update(diagramParams);
65
    }
66
}
sources/src/main/webapp/WEB-INF/web.xml
64 64
		<servlet-name>UploadFiles</servlet-name>
65 65
		<servlet-class>cz.zcu.kiv.offscreen.servlets.UploadFiles</servlet-class>
66 66
	</servlet>
67
	<servlet>
68
		<servlet-name>SaveDiagram</servlet-name>
69
		<servlet-class>cz.zcu.kiv.offscreen.servlets.actions.SaveDiagram</servlet-class>
70
	</servlet>
67 71
	<servlet>
68 72
		<servlet-name>DeleteAllComponents</servlet-name>
69 73
		<servlet-class>cz.zcu.kiv.offscreen.servlets.actions.DeleteAllComponents</servlet-class>
......
104 108
		<servlet-name>ShowGraph</servlet-name>
105 109
		<url-pattern>/graph</url-pattern>
106 110
	</servlet-mapping>
111
	<servlet-mapping>
112
		<servlet-name>SaveDiagram</servlet-name>
113
		<url-pattern>/api/save-diagram</url-pattern>
114
	</servlet-mapping>
115

  
107 116
	<servlet-mapping>
108 117
		<servlet-name>DeleteAllComponents</servlet-name>
109 118
		<url-pattern>/delete-components</url-pattern>

Také k dispozici: Unified diff