Mercurial > hg > AnnotationManagerN4J
comparison src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorGroups.java @ 88:b406507a953d
upped version to 0.5.
can use display name and groups from auth token.
author | casties |
---|---|
date | Tue, 03 Feb 2015 19:01:27 +0100 |
parents | 25eb2e1df106 |
children | cf44d9e1a4a7 |
comparison
equal
deleted
inserted
replaced
87:2beafb8e19e4 | 88:b406507a953d |
---|---|
1 /** | |
2 * ReST API for accessing groups in the Annotation store. | |
3 */ | |
4 package de.mpiwg.itgroup.annotations.restlet; | 1 package de.mpiwg.itgroup.annotations.restlet; |
5 | 2 |
6 /* | 3 /* |
7 * #%L | 4 * #%L |
8 * AnnotationManager | 5 * AnnotationManager |
37 import org.restlet.representation.Representation; | 34 import org.restlet.representation.Representation; |
38 import org.restlet.resource.Get; | 35 import org.restlet.resource.Get; |
39 | 36 |
40 import de.mpiwg.itgroup.annotations.Actor; | 37 import de.mpiwg.itgroup.annotations.Actor; |
41 import de.mpiwg.itgroup.annotations.Group; | 38 import de.mpiwg.itgroup.annotations.Group; |
39 import de.mpiwg.itgroup.annotations.Person; | |
42 import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore; | 40 import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore; |
43 | 41 |
44 | 42 |
45 /** | 43 /** |
46 * API for accessing groups in the Annotation store. | 44 * API for accessing groups in the Annotation store. |
64 */ | 62 */ |
65 @Get("json") | 63 @Get("json") |
66 public Representation doGetJSON(Representation entity) { | 64 public Representation doGetJSON(Representation entity) { |
67 logger.fine("AnnotatorGroups doGetJSON!"); | 65 logger.fine("AnnotatorGroups doGetJSON!"); |
68 setCorsHeaders(); | 66 setCorsHeaders(); |
69 Form form = getRequest().getResourceRef().getQueryAsForm(); | 67 // get user from auth token (preferred) |
70 String user = form.getFirstValue("user"); | 68 Person authUser = getUserFromAuthToken(entity); |
71 String uri = form.getFirstValue("uri"); | 69 JSONArray results = null; |
70 if (authUser != null && authUser.groups != null) { | |
71 results = getGroupsFromPerson(authUser); | |
72 } else { | |
73 // get user or uri from request | |
74 Form form = getRequest().getResourceRef().getQueryAsForm(); | |
75 String user = form.getFirstValue("user"); | |
76 String uri = form.getFirstValue("uri"); | |
77 results = getGroupsFromStore(uri, user); | |
78 } | |
79 // assemble result object | |
80 JSONObject result = new JSONObject(); | |
81 try { | |
82 result.put("rows", results); | |
83 result.put("total", results.length()); | |
84 } catch (JSONException e) { | |
85 setStatus(Status.SERVER_ERROR_INTERNAL, "JSON Error"); | |
86 return null; | |
87 } | |
88 logger.fine("sending:"); | |
89 logger.fine(result.toString()); | |
90 return new JsonRepresentation(result); | |
91 } | |
92 | |
93 public JSONArray getGroupsFromPerson(Person person) { | |
94 JSONArray results = new JSONArray(); | |
95 for (String group : person.groups) { | |
96 JSONObject jo = new JSONObject(); | |
97 try { | |
98 jo.put("id", group); | |
99 jo.put("name", group); | |
100 } catch (JSONException e) { | |
101 } | |
102 results.put(jo); | |
103 } | |
104 return results; | |
105 } | |
106 | |
107 public JSONArray getGroupsFromStore(String uri, String user) { | |
108 JSONArray results = new JSONArray(); | |
72 if (uri == null || uri.isEmpty()) { | 109 if (uri == null || uri.isEmpty()) { |
73 // get uri from user-id | 110 // get uri from user-id |
74 uri = Actor.getUriFromId(user, false); | 111 uri = Actor.getUriFromId(user, false); |
75 } | 112 } |
76 JSONArray results = new JSONArray(); | |
77 AnnotationStore store = getAnnotationStore(); | 113 AnnotationStore store = getAnnotationStore(); |
78 Node person = store.getPersonNodeByUri(uri); | 114 Node person = store.getPersonNodeByUri(uri); |
79 if (person != null) { | 115 if (person != null) { |
80 List<Group> groups = store.getGroupsForPersonNode(person); | 116 List<Group> groups = store.getGroupsForPersonNode(person); |
81 for (Group group : groups) { | 117 for (Group group : groups) { |
87 } catch (JSONException e) { | 123 } catch (JSONException e) { |
88 } | 124 } |
89 results.put(jo); | 125 results.put(jo); |
90 } | 126 } |
91 } | 127 } |
92 // assemble result object | 128 return results; |
93 JSONObject result = new JSONObject(); | |
94 try { | |
95 result.put("rows", results); | |
96 result.put("total", results.length()); | |
97 } catch (JSONException e) { | |
98 setStatus(Status.SERVER_ERROR_INTERNAL, "JSON Error"); | |
99 return null; | |
100 } | |
101 logger.fine("sending:"); | |
102 logger.fine(result.toString()); | |
103 return new JsonRepresentation(result); | |
104 | |
105 } | 129 } |
106 } | 130 } |