@Operation(httpMethods = "DELETE") public Future<?> delete(SocialRequestItem request) throws ProtocolException { // Get user and album ID Set<UserId> userIds = request.getUsers(); String albumId = request.getParameter("albumId"); // Enforce preconditions - userIds must contain exactly one element HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); // Service request return service.deleteAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), albumId, request.getToken()); }
@Operation(httpMethods = "GET") public Future<?> get(SocialRequestItem request) throws ProtocolException { // Get user, group, and album IDs Set<UserId> userIds = request.getUsers(); Set<String> optionalAlbumIds = ImmutableSet.copyOf(request .getListParameter("albumId")); // At least one userId must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); // If multiple userIds specified, albumIds must not be specified if (userIds.size() > 1 && !optionalAlbumIds.isEmpty()) { throw new IllegalArgumentException("Cannot fetch same albumIds for multiple userIds"); } // Retrieve albums by ID if (!optionalAlbumIds.isEmpty()) { if (optionalAlbumIds.size() == 1) { return service.getAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getFields(), optionalAlbumIds.iterator().next(), request.getToken()); } else { return service.getAlbums(Iterables.getOnlyElement(userIds), request.getAppId(), request.getFields(), collectionOptionsFactory.create(request), optionalAlbumIds, request.getToken()); } } // Retrieve albums by group return service.getAlbums(userIds, request.getGroup(), request .getAppId(), request.getFields(), collectionOptionsFactory.create(request), request.getToken()); }
@Operation(httpMethods = "POST", bodyParam = "album") public Future<?> create(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); List<String> albumIds = request.getListParameter("albumId"); // Preconditions - exactly one userId specified, no albumIds specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); HandlerPreconditions.requireEmpty(albumIds, "Cannot specify albumId in create"); return service.createAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getTypedParameter("album", Album.class), request.getToken()); }
@Operation(httpMethods = "PUT", bodyParam = "album") public Future<?> update(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); List<String> albumIds = request.getListParameter("albumId"); // Enforce preconditions - exactly one user and one album specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); HandlerPreconditions.requireNotEmpty(albumIds, "No albumId specified"); HandlerPreconditions.requireSingular(albumIds, "Multiple albumIds not supported"); return service.updateAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getTypedParameter("album", Album.class), Iterables.getOnlyElement(albumIds), request.getToken()); }
@Operation(httpMethods = "POST", bodyParam = "album") public Future<?> create(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); List<String> albumIds = request.getListParameter("albumId"); // Preconditions - exactly one userId specified, no albumIds specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); HandlerPreconditions.requireEmpty(albumIds, "Cannot specify albumId in create"); return service.createAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getTypedParameter("album", Album.class), request.getToken()); }
@Operation(httpMethods = "PUT", bodyParam = "album") public Future<?> update(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); List<String> albumIds = request.getListParameter("albumId"); // Enforce preconditions - exactly one user and one album specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); HandlerPreconditions.requireNotEmpty(albumIds, "No albumId specified"); HandlerPreconditions.requireSingular(albumIds, "Multiple albumIds not supported"); return service.updateAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getTypedParameter("album", Album.class), Iterables.getOnlyElement(albumIds), request.getToken()); }
@Operation(httpMethods = "GET") public Future<?> get(SocialRequestItem request) throws ProtocolException { // Get user, group, and album IDs Set<UserId> userIds = request.getUsers(); Set<String> optionalAlbumIds = ImmutableSet.copyOf(request .getListParameter("albumId")); // At least one userId must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); // If multiple userIds specified, albumIds must not be specified if (userIds.size() > 1 && !optionalAlbumIds.isEmpty()) { throw new IllegalArgumentException("Cannot fetch same albumIds for multiple userIds"); } // Retrieve albums by ID if (!optionalAlbumIds.isEmpty()) { if (optionalAlbumIds.size() == 1) { return service.getAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getFields(), optionalAlbumIds.iterator().next(), request.getToken()); } else { return service.getAlbums(Iterables.getOnlyElement(userIds), request.getAppId(), request.getFields(), collectionOptionsFactory.create(request), optionalAlbumIds, request.getToken()); } } // Retrieve albums by group return service.getAlbums(userIds, request.getGroup(), request .getAppId(), request.getFields(), collectionOptionsFactory.create(request), request.getToken()); }
@Operation(httpMethods = "DELETE") public Future<?> delete(SocialRequestItem request) throws ProtocolException { // Get user and album ID Set<UserId> userIds = request.getUsers(); String albumId = request.getParameter("albumId"); // Enforce preconditions - userIds must contain exactly one element HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); // Service request return service.deleteAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), albumId, request.getToken()); }
@Operation(httpMethods = "POST", bodyParam = "album") public Future<?> create(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); List<String> albumIds = request.getListParameter("albumId"); // Preconditions - exactly one userId specified, no albumIds specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); HandlerPreconditions.requireEmpty(albumIds, "Cannot specify albumId in create"); return service.createAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getTypedParameter("album", Album.class), request.getToken()); }
@Operation(httpMethods = "PUT", bodyParam = "album") public Future<?> update(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); List<String> albumIds = request.getListParameter("albumId"); // Enforce preconditions - exactly one user and one album specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); HandlerPreconditions.requireNotEmpty(albumIds, "No albumId specified"); HandlerPreconditions.requireSingular(albumIds, "Multiple albumIds not supported"); return service.updateAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getTypedParameter("album", Album.class), Iterables.getOnlyElement(albumIds), request.getToken()); }
@Operation(httpMethods = "GET") public Future<?> get(SocialRequestItem request) throws ProtocolException { // Get user, group, and album IDs Set<UserId> userIds = request.getUsers(); Set<String> optionalAlbumIds = ImmutableSet.copyOf(request .getListParameter("albumId")); // At least one userId must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); // If multiple userIds specified, albumIds must not be specified if (userIds.size() > 1 && !optionalAlbumIds.isEmpty()) { throw new IllegalArgumentException("Cannot fetch same albumIds for multiple userIds"); } // Retrieve albums by ID if (!optionalAlbumIds.isEmpty()) { if (optionalAlbumIds.size() == 1) { return service.getAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), request.getFields(), optionalAlbumIds.iterator().next(), request.getToken()); } else { return service.getAlbums(Iterables.getOnlyElement(userIds), request.getAppId(), request.getFields(), new CollectionOptions(request), optionalAlbumIds, request.getToken()); } } // Retrieve albums by group return service.getAlbums(userIds, request.getGroup(), request .getAppId(), request.getFields(), new CollectionOptions(request), request.getToken()); }
@Operation(httpMethods = "DELETE") public Future<?> delete(SocialRequestItem request) throws ProtocolException { // Get user and album ID Set<UserId> userIds = request.getUsers(); String albumId = request.getParameter("albumId"); // Enforce preconditions - userIds must contain exactly one element HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); // Service request return service.deleteAlbum(Iterables.getOnlyElement(userIds), request.getAppId(), albumId, request.getToken()); }