Changeset 88:b406507a953d in AnnotationManagerN4J for src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorGroups.java
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorGroups.java
r75 r88 1 /**2 * ReST API for accessing groups in the Annotation store.3 */4 1 package de.mpiwg.itgroup.annotations.restlet; 5 2 … … 40 37 import de.mpiwg.itgroup.annotations.Actor; 41 38 import de.mpiwg.itgroup.annotations.Group; 39 import de.mpiwg.itgroup.annotations.Person; 42 40 import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore; 43 41 … … 67 65 logger.fine("AnnotatorGroups doGetJSON!"); 68 66 setCorsHeaders(); 69 Form form = getRequest().getResourceRef().getQueryAsForm(); 70 String user = form.getFirstValue("user"); 71 String uri = form.getFirstValue("uri"); 67 // get user from auth token (preferred) 68 Person authUser = getUserFromAuthToken(entity); 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 109 if (uri == null || uri.isEmpty()) { 73 110 // get uri from user-id 74 111 uri = Actor.getUriFromId(user, false); 75 112 } 76 JSONArray results = new JSONArray();77 113 AnnotationStore store = getAnnotationStore(); 78 114 Node person = store.getPersonNodeByUri(uri); … … 90 126 } 91 127 } 92 // assemble result object 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 128 return results; 105 129 } 106 130 }
Note: See TracChangeset
for help on using the changeset viewer.