@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 = "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 = "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()); }