annotate src/main/java/de/mpiwg/itgroup/diva/rest/RestWitness.java @ 187:be6bc580b137

changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Tue, 30 Oct 2018 20:09:59 +0100
parents 28a0c2726466
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.diva.rest;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import javax.servlet.http.HttpServletRequest;
jurzua
parents:
diff changeset
4 import javax.servlet.http.HttpServletResponse;
187
be6bc580b137 changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 124
diff changeset
5 import javax.ws.rs.Consumes;
be6bc580b137 changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 124
diff changeset
6 import javax.ws.rs.POST;
1
jurzua
parents:
diff changeset
7 import javax.ws.rs.Path;
jurzua
parents:
diff changeset
8 import javax.ws.rs.Produces;
jurzua
parents:
diff changeset
9 import javax.ws.rs.core.Context;
jurzua
parents:
diff changeset
10 import javax.ws.rs.core.MediaType;
jurzua
parents:
diff changeset
11 import javax.ws.rs.core.Response;
jurzua
parents:
diff changeset
12
jurzua
parents:
diff changeset
13 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
14 import org.json.JSONObject;
jurzua
parents:
diff changeset
15 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
16
jurzua
parents:
diff changeset
17 import de.mpiwg.itgroup.diva.utils.JSONEntity;
jurzua
parents:
diff changeset
18
jurzua
parents:
diff changeset
19
jurzua
parents:
diff changeset
20 @Path("/witness")
jurzua
parents:
diff changeset
21 public class RestWitness extends RestInterface{
jurzua
parents:
diff changeset
22
jurzua
parents:
diff changeset
23
jurzua
parents:
diff changeset
24 private static Logger logger = Logger.getLogger(RestWitness.class);
jurzua
parents:
diff changeset
25
187
be6bc580b137 changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 124
diff changeset
26 @POST
1
jurzua
parents:
diff changeset
27 @Path("/update")
187
be6bc580b137 changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 124
diff changeset
28 @Consumes(MediaType.APPLICATION_JSON)
1
jurzua
parents:
diff changeset
29 @Produces(MediaType.APPLICATION_JSON)
jurzua
parents:
diff changeset
30 public Response
jurzua
parents:
diff changeset
31 saveWitnessPagesIndexing(
jurzua
parents:
diff changeset
32 @Context HttpServletRequest request,
jurzua
parents:
diff changeset
33 @Context HttpServletResponse response,
187
be6bc580b137 changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 124
diff changeset
34 String jsonParam) throws Exception{
1
jurzua
parents:
diff changeset
35
jurzua
parents:
diff changeset
36 JSONObject resp = new JSONObject();
jurzua
parents:
diff changeset
37
jurzua
parents:
diff changeset
38 try {
jurzua
parents:
diff changeset
39 if(getSessionBean(request, response).isCanEdit()){
187
be6bc580b137 changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 124
diff changeset
40 JSONObject json = new JSONObject(jsonParam);
1
jurzua
parents:
diff changeset
41
jurzua
parents:
diff changeset
42 logger.info(json.toString());
jurzua
parents:
diff changeset
43
jurzua
parents:
diff changeset
44 if(json.getJSONObject("witness") != null && json.getJSONObject("witness").get("id") != null){
jurzua
parents:
diff changeset
45
jurzua
parents:
diff changeset
46 JSONEntity jsonEnt = new JSONEntity(json.getJSONObject("witness"), json.getJSONObject("witness").getLong("id"));
jurzua
parents:
diff changeset
47
jurzua
parents:
diff changeset
48 Entity ent = getWrapper(request, response).getEntityByIdWithContent(jsonEnt.id);
jurzua
parents:
diff changeset
49 ent = jsonEnt.updateEntity(ent);
jurzua
parents:
diff changeset
50
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 1
diff changeset
51 getWrapper(request, response).saveEntity(ent, getSessionBean(request, response).getUsername(), null);
1
jurzua
parents:
diff changeset
52 }
jurzua
parents:
diff changeset
53
jurzua
parents:
diff changeset
54 resp.put("state", "ok");
jurzua
parents:
diff changeset
55 }else{
jurzua
parents:
diff changeset
56 resp.put("state", "error");
jurzua
parents:
diff changeset
57
jurzua
parents:
diff changeset
58 if(getSessionBean(request, response).getUser() == null){
jurzua
parents:
diff changeset
59 resp.put("message", "Action was not executed. You must log in.");
jurzua
parents:
diff changeset
60 }else{
jurzua
parents:
diff changeset
61 resp.put("message", "Action was not executed. User can not edit.");
jurzua
parents:
diff changeset
62 }
jurzua
parents:
diff changeset
63 }
jurzua
parents:
diff changeset
64 } catch (Exception e) {
jurzua
parents:
diff changeset
65 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
66 resp.put("state", "error");
jurzua
parents:
diff changeset
67 resp.put("message", e.getMessage());
jurzua
parents:
diff changeset
68 }
jurzua
parents:
diff changeset
69
jurzua
parents:
diff changeset
70
jurzua
parents:
diff changeset
71 return Response.ok(resp.toString(), MediaType.APPLICATION_JSON).build();
jurzua
parents:
diff changeset
72 }
jurzua
parents:
diff changeset
73 }