/** {@inheritDoc} */ public Future<Void> deleteActivities(UserId userId, GroupId groupId, String appId, Set<String> activityIds, SecurityToken token) throws ProtocolException { try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); if (activities != null) { JSONArray newList = new JSONArray(); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (!activityIds.contains(activity.getString(Activity.Field.ID.toString()))) { newList.put(activity); } } db.getJSONObject(ACTIVITIES_TABLE).put(user, newList); // TODO. This seems very odd that we return no useful response in this // case // There is no way to represent not-found // if (found) { ?? // } } } // What is the appropriate response here?? return Futures.immediateFuture(null); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Void> deleteActivities(UserId userId, GroupId groupId, String appId, Set<String> activityIds, SecurityToken token) throws ProtocolException { try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); if (activities != null) { JSONArray newList = new JSONArray(); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (!activityIds.contains(activity.getString(Activity.Field.ID.toString()))) { newList.put(activity); } } db.getJSONObject(ACTIVITIES_TABLE).put(user, newList); // TODO. This seems very odd that we return no useful response in this // case // There is no way to represent not-found // if (found) { ?? // } } } // What is the appropriate response here?? return Futures.immediateFuture(null); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<RestfulCollection<Activity>> getActivities(Set<UserId> userIds, GroupId groupId, String appId, Set<String> fields, CollectionOptions options, SecurityToken token) throws ProtocolException { List<Activity> result = Lists.newArrayList(); try { Set<String> idSet = getIdSet(userIds, groupId, token); for (String id : idSet) { if (db.getJSONObject(ACTIVITIES_TABLE).has(id)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(id); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (appId == null || !activity.has(Activity.Field.APP_ID.toString())) { result.add(filterFields(activity, fields, Activity.class)); } else if (activity.get(Activity.Field.APP_ID.toString()).equals(appId)) { result.add(filterFields(activity, fields, Activity.class)); } } } } return Futures.immediateFuture(new RestfulCollection<Activity>(result)); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Void> deleteActivities(UserId userId, GroupId groupId, String appId, Set<String> activityIds, SecurityToken token) throws ProtocolException { try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); if (activities != null) { JSONArray newList = new JSONArray(); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (!activityIds.contains(activity.getString(Activity.Field.ID.toString()))) { newList.put(activity); } } db.getJSONObject(ACTIVITIES_TABLE).put(user, newList); // TODO. This seems very odd that we return no useful response in this // case // There is no way to represent not-found // if (found) { ?? // } } } // What is the appropriate response here?? return ImmediateFuture.newInstance(null); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<RestfulCollection<Activity>> getActivities(Set<UserId> userIds, GroupId groupId, String appId, Set<String> fields, CollectionOptions options, SecurityToken token) throws ProtocolException { List<Activity> result = Lists.newArrayList(); try { Set<String> idSet = getIdSet(userIds, groupId, token); for (String id : idSet) { if (db.getJSONObject(ACTIVITIES_TABLE).has(id)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(id); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (appId == null || !activity.has(Activity.Field.APP_ID.toString())) { result.add(filterFields(activity, fields, Activity.class)); } else if (activity.get(Activity.Field.APP_ID.toString()).equals(appId)) { result.add(filterFields(activity, fields, Activity.class)); } } } } return Futures.immediateFuture(new RestfulCollection<Activity>(result)); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<RestfulCollection<Activity>> getActivities(Set<UserId> userIds, GroupId groupId, String appId, Set<String> fields, CollectionOptions options, SecurityToken token) throws ProtocolException { List<Activity> result = Lists.newArrayList(); try { Set<String> idSet = getIdSet(userIds, groupId, token); for (String id : idSet) { if (db.getJSONObject(ACTIVITIES_TABLE).has(id)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(id); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (appId == null || !activity.has(Activity.Field.APP_ID.toString())) { result.add(filterFields(activity, fields, Activity.class)); } else if (activity.get(Activity.Field.APP_ID.toString()).equals(appId)) { result.add(filterFields(activity, fields, Activity.class)); } } } } return ImmediateFuture.newInstance(new RestfulCollection<Activity>(result)); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Void> createActivity(UserId userId, GroupId groupId, String appId, Set<String> fields, Activity activity, SecurityToken token) throws ProtocolException { // Are fields really needed here? try { JSONObject jsonObject = convertFromActivity(activity, fields); if (!jsonObject.has(Activity.Field.ID.toString())) { jsonObject.put(Activity.Field.ID.toString(), System.currentTimeMillis()); } JSONArray jsonArray = db.getJSONObject(ACTIVITIES_TABLE) .getJSONArray(userId.getUserId(token)); if (jsonArray == null) { jsonArray = new JSONArray(); db.getJSONObject(ACTIVITIES_TABLE).put(userId.getUserId(token), jsonArray); } // TODO (woodser): if used with PUT, duplicate activity would be created? jsonArray.put(jsonObject); return ImmediateFuture.newInstance(null); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Void> createActivity(UserId userId, GroupId groupId, String appId, Set<String> fields, Activity activity, SecurityToken token) throws ProtocolException { // Are fields really needed here? try { JSONObject jsonObject = convertFromActivity(activity, fields); if (!jsonObject.has(Activity.Field.ID.toString())) { jsonObject.put(Activity.Field.ID.toString(), System.currentTimeMillis()); } JSONArray jsonArray = db.getJSONObject(ACTIVITIES_TABLE) .getJSONArray(userId.getUserId(token)); if (jsonArray == null) { jsonArray = new JSONArray(); db.getJSONObject(ACTIVITIES_TABLE).put(userId.getUserId(token), jsonArray); } // TODO (woodser): if used with PUT, duplicate activity would be created? jsonArray.put(jsonObject); return Futures.immediateFuture(null); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<RestfulCollection<Activity>> getActivities(UserId userId, GroupId groupId, String appId, Set<String> fields, CollectionOptions options, Set<String> activityIds, SecurityToken token) throws ProtocolException { List<Activity> result = Lists.newArrayList(); try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (activity.get(Activity.Field.USER_ID.toString()).equals(user) && activityIds.contains(activity.getString(Activity.Field.ID.toString()))) { result.add(filterFields(activity, fields, Activity.class)); } } } return Futures.immediateFuture(new RestfulCollection<Activity>(result)); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<RestfulCollection<Activity>> getActivities(UserId userId, GroupId groupId, String appId, Set<String> fields, CollectionOptions options, Set<String> activityIds, SecurityToken token) throws ProtocolException { List<Activity> result = Lists.newArrayList(); try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (activity.get(Activity.Field.USER_ID.toString()).equals(user) && activityIds.contains(activity.getString(Activity.Field.ID.toString()))) { result.add(filterFields(activity, fields, Activity.class)); } } } return Futures.immediateFuture(new RestfulCollection<Activity>(result)); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Void> createActivity(UserId userId, GroupId groupId, String appId, Set<String> fields, Activity activity, SecurityToken token) throws ProtocolException { // Are fields really needed here? try { JSONObject jsonObject = convertFromActivity(activity, fields); if (!jsonObject.has(Activity.Field.ID.toString())) { jsonObject.put(Activity.Field.ID.toString(), System.currentTimeMillis()); } JSONArray jsonArray = db.getJSONObject(ACTIVITIES_TABLE) .getJSONArray(userId.getUserId(token)); if (jsonArray == null) { jsonArray = new JSONArray(); db.getJSONObject(ACTIVITIES_TABLE).put(userId.getUserId(token), jsonArray); } // TODO (woodser): if used with PUT, duplicate activity would be created? jsonArray.put(jsonObject); return Futures.immediateFuture(null); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Activity> getActivity(UserId userId, GroupId groupId, String appId, Set<String> fields, String activityId, SecurityToken token) throws ProtocolException { try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (activity.get(Activity.Field.USER_ID.toString()).equals(user) && activity.get(Activity.Field.ID.toString()).equals(activityId)) { return Futures.immediateFuture(filterFields(activity, fields, Activity.class)); } } } throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST, "Activity not found"); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<RestfulCollection<Activity>> getActivities(UserId userId, GroupId groupId, String appId, Set<String> fields, CollectionOptions options, Set<String> activityIds, SecurityToken token) throws ProtocolException { List<Activity> result = Lists.newArrayList(); try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (activity.get(Activity.Field.USER_ID.toString()).equals(user) && activityIds.contains(activity.getString(Activity.Field.ID.toString()))) { result.add(filterFields(activity, fields, Activity.class)); } } } return ImmediateFuture.newInstance(new RestfulCollection<Activity>(result)); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Activity> getActivity(UserId userId, GroupId groupId, String appId, Set<String> fields, String activityId, SecurityToken token) throws ProtocolException { try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (activity.get(Activity.Field.USER_ID.toString()).equals(user) && activity.get(Activity.Field.ID.toString()).equals(activityId)) { return ImmediateFuture.newInstance(filterFields(activity, fields, Activity.class)); } } } throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST, "Activity not found"); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Activity> getActivity(UserId userId, GroupId groupId, String appId, Set<String> fields, String activityId, SecurityToken token) throws ProtocolException { try { String user = userId.getUserId(token); if (db.getJSONObject(ACTIVITIES_TABLE).has(user)) { JSONArray activities = db.getJSONObject(ACTIVITIES_TABLE).getJSONArray(user); for (int i = 0; i < activities.length(); i++) { JSONObject activity = activities.getJSONObject(i); if (activity.get(Activity.Field.USER_ID.toString()).equals(user) && activity.get(Activity.Field.ID.toString()).equals(activityId)) { return Futures.immediateFuture(filterFields(activity, fields, Activity.class)); } } } throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST, "Activity not found"); } catch (JSONException je) { throw new ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }