|
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 |
}
|
Created save diagram servlet