/** {@inheritDoc} */ public Future<MediaItem> getMediaItem(UserId userId, String appId, String albumId, String mediaItemId, Set<String> fields, SecurityToken token) throws ProtocolException { try { // First ensure user has a table String user = userId.getUserId(token); if (db.getJSONObject(MEDIAITEMS_TABLE).has(user)) { // Retrieve user's MediaItems JSONArray userMediaItems = db.getJSONObject(MEDIAITEMS_TABLE).getJSONArray(user); // Search user's MediaItems for given ID and album JSONObject mediaItem; for (int i = 0; i < userMediaItems.length(); i++) { mediaItem = userMediaItems.getJSONObject(i); if (mediaItem.getString(MediaItem.Field.ID.toString()).equals(mediaItemId) && mediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { return Futures.immediateFuture(filterFields(mediaItem, fields, MediaItem.class)); } } } // MediaItem wasn't found throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST, "MediaItem ID '" + mediaItemId + "' does not exist within Album '" + albumId + '\''); } catch (JSONException je) { throw new ProtocolException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
for (int i = 0; i < userMediaItems.length(); i++) { curMediaItem = userMediaItems.getJSONObject(i); if (curMediaItem.getString(MediaItem.Field.ID.toString()).equals(albumId) && curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { result.add(filterFields(curMediaItem, fields, MediaItem.class)); found = true;
for (int i = 0; i < userMediaItems.length(); i++) { curMediaItem = userMediaItems.getJSONObject(i); if (curMediaItem.getString(MediaItem.Field.ID.toString()).equals(albumId) && curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { result.add(filterFields(curMediaItem, fields, MediaItem.class)); found = true;
for (int i = 0; i < userMediaItems.length(); i++) { curMediaItem = userMediaItems.getJSONObject(i); if (curMediaItem.getString(MediaItem.Field.ID.toString()).equals(albumId) && curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { result.add(filterFields(curMediaItem, fields, MediaItem.class)); found = true;
for (int i = 0; i < userMediaItems.length(); i++) { curMediaItem = userMediaItems.getJSONObject(i); if (curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { result.add(filterFields(curMediaItem, fields, MediaItem.class));
jsonMediaItem.put(MediaItem.Field.ID.toString(), mediaItemId); jsonMediaItem.put(MediaItem.Field.ALBUM_ID.toString(), albumId); if (curMediaItem.getString(MediaItem.Field.ID.toString()).equals(mediaItemId) && curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { userMediaItems.put(i, jsonMediaItem); return Futures.immediateFuture(null);
for (int i = 0; i < userMediaItems.length(); i++) { curMediaItem = userMediaItems.getJSONObject(i); if (curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { result.add(filterFields(curMediaItem, fields, MediaItem.class));
jsonMediaItem.put(MediaItem.Field.ID.toString(), mediaItemId); jsonMediaItem.put(MediaItem.Field.ALBUM_ID.toString(), albumId); for (int i = 0; i < userMediaItems.length(); i++) { curMediaItem = userMediaItems.getJSONObject(i); if (curMediaItem.getString(MediaItem.Field.ID.toString()).equals(mediaItemId) && curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { userMediaItems.put(i, jsonMediaItem); return ImmediateFuture.newInstance(null);
/** {@inheritDoc} */ public Future<MediaItem> getMediaItem(UserId userId, String appId, String albumId, String mediaItemId, Set<String> fields, SecurityToken token) throws ProtocolException { try { // First ensure user has a table String user = userId.getUserId(token); if (db.getJSONObject(MEDIAITEMS_TABLE).has(user)) { // Retrieve user's MediaItems JSONArray userMediaItems = db.getJSONObject(MEDIAITEMS_TABLE).getJSONArray(user); // Search user's MediaItems for given ID and album JSONObject mediaItem; for (int i = 0; i < userMediaItems.length(); i++) { mediaItem = userMediaItems.getJSONObject(i); if (mediaItem.getString(MediaItem.Field.ID.toString()).equals(mediaItemId) && mediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { return Futures.immediateFuture(filterFields(mediaItem, fields, MediaItem.class)); } } } // MediaItem wasn't found throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST, "MediaItem ID '" + mediaItemId + "' does not exist within Album '" + albumId + '\''); } catch (JSONException je) { throw new ProtocolException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
jsonMediaItem.put(MediaItem.Field.ID.toString(), mediaItemId); jsonMediaItem.put(MediaItem.Field.ALBUM_ID.toString(), albumId); if (curMediaItem.getString(MediaItem.Field.ID.toString()).equals(mediaItemId) && curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { userMediaItems.put(i, jsonMediaItem); return Futures.immediateFuture(null);
/** {@inheritDoc} */ public Future<Void> createMediaItem(UserId userId, String appId, String albumId, MediaItem mediaItem, SecurityToken token) throws ProtocolException { try { // Get table of user's MediaItems JSONArray userMediaItems = db.getJSONObject(MEDIAITEMS_TABLE).getJSONArray(userId.getUserId(token)); if (userMediaItems == null) { userMediaItems = new JSONArray(); db.getJSONObject(MEDIAITEMS_TABLE).put(userId.getUserId(token), userMediaItems); } // Convert MediaItem to JSON and set ID & Album ID JSONObject jsonMediaItem = convertToJson(mediaItem); jsonMediaItem.put(MediaItem.Field.ALBUM_ID.toString(), albumId); if (!jsonMediaItem.has(MediaItem.Field.ID.toString())) { jsonMediaItem.put(MediaItem.Field.ID.toString(), System.currentTimeMillis()); } // Insert new MediaItem into table userMediaItems.put(jsonMediaItem); return Futures.immediateFuture(null); } catch (JSONException je) { throw new ProtocolException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<MediaItem> getMediaItem(UserId userId, String appId, String albumId, String mediaItemId, Set<String> fields, SecurityToken token) throws ProtocolException { try { // First ensure user has a table String user = userId.getUserId(token); if (db.getJSONObject(MEDIAITEMS_TABLE).has(user)) { // Retrieve user's MediaItems JSONArray userMediaItems = db.getJSONObject(MEDIAITEMS_TABLE).getJSONArray(user); // Search user's MediaItems for given ID and album JSONObject mediaItem; for (int i = 0; i < userMediaItems.length(); i++) { mediaItem = userMediaItems.getJSONObject(i); if (mediaItem.getString(MediaItem.Field.ID.toString()).equals(mediaItemId) && mediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { return ImmediateFuture.newInstance(filterFields(mediaItem, fields, MediaItem.class)); } } } // MediaItem wasn't found throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST, "MediaItem ID '" + mediaItemId + "' does not exist within Album '" + albumId + "'"); } catch (JSONException je) { throw new ProtocolException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
for (int i = 0; i < userMediaItems.length(); i++) { curMediaItem = userMediaItems.getJSONObject(i); if (curMediaItem.getString(MediaItem.Field.ALBUM_ID.toString()).equals(albumId)) { result.add(filterFields(curMediaItem, fields, MediaItem.class));
/** {@inheritDoc} */ public Future<Void> createMediaItem(UserId userId, String appId, String albumId, MediaItem mediaItem, SecurityToken token) throws ProtocolException { try { // Get table of user's MediaItems JSONArray userMediaItems = db.getJSONObject(MEDIAITEMS_TABLE).getJSONArray(userId.getUserId(token)); if (userMediaItems == null) { userMediaItems = new JSONArray(); db.getJSONObject(MEDIAITEMS_TABLE).put(userId.getUserId(token), userMediaItems); } // Convert MediaItem to JSON and set ID & Album ID JSONObject jsonMediaItem = convertToJson(mediaItem); jsonMediaItem.put(MediaItem.Field.ALBUM_ID.toString(), albumId); if (!jsonMediaItem.has(MediaItem.Field.ID.toString())) { jsonMediaItem.put(MediaItem.Field.ID.toString(), System.currentTimeMillis()); } // Insert new MediaItem into table userMediaItems.put(jsonMediaItem); return ImmediateFuture.newInstance(null); } catch (JSONException je) { throw new ProtocolException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }
/** {@inheritDoc} */ public Future<Void> createMediaItem(UserId userId, String appId, String albumId, MediaItem mediaItem, SecurityToken token) throws ProtocolException { try { // Get table of user's MediaItems JSONArray userMediaItems = db.getJSONObject(MEDIAITEMS_TABLE).getJSONArray(userId.getUserId(token)); if (userMediaItems == null) { userMediaItems = new JSONArray(); db.getJSONObject(MEDIAITEMS_TABLE).put(userId.getUserId(token), userMediaItems); } // Convert MediaItem to JSON and set ID & Album ID JSONObject jsonMediaItem = convertToJson(mediaItem); jsonMediaItem.put(MediaItem.Field.ALBUM_ID.toString(), albumId); if (!jsonMediaItem.has(MediaItem.Field.ID.toString())) { jsonMediaItem.put(MediaItem.Field.ID.toString(), System.currentTimeMillis()); } // Insert new MediaItem into table userMediaItems.put(jsonMediaItem); return Futures.immediateFuture(null); } catch (JSONException je) { throw new ProtocolException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(), je); } }