@Operation(httpMethods = "DELETE") public Future<?> delete(SocialRequestItem request) throws ProtocolException { // Get users, Album ID, and MediaItem ID Set<UserId> userIds = request.getUsers(); Set<String> albumIds = ImmutableSet.copyOf(request.getListParameter("albumId")); Set<String> mediaItemIds = ImmutableSet.copyOf(getRequestMediaItemIds(request)); // Exactly one user, Album, and MediaItem must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Exactly one user ID must be specified"); HandlerPreconditions.requireSingular(albumIds, "Exactly one Album ID must be specified"); HandlerPreconditions.requireSingular(mediaItemIds, "Exactly one MediaItem ID must be specified"); // Service request return service.deleteMediaItem(Iterables.getOnlyElement(userIds), request.getAppId(), Iterables.getOnlyElement(albumIds), Iterables.getOnlyElement(mediaItemIds), request.getToken()); }
@Operation(httpMethods = "PUT", bodyParam = "mediaItem") public Future<?> update(SocialRequestItem request) throws ProtocolException { // Retrieve userIds, albumIds, and mediaItemIds Set<UserId> userIds = request.getUsers(); Set<String> albumIds = ImmutableSet.copyOf(request.getListParameter("albumId")); Set<String> mediaItemIds = ImmutableSet.copyOf(request.getListParameter("mediaItemIds")); // Exactly one user, Album, and MediaItem must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Exactly one user ID must be specified"); HandlerPreconditions.requireSingular(albumIds, "Exactly one Album ID must be specified"); HandlerPreconditions.requireSingular(mediaItemIds, "Exactly one MediaItem ID must be specified"); // Service request return service.updateMediaItem(Iterables.getOnlyElement(userIds), request.getAppId(), Iterables.getOnlyElement(albumIds), Iterables.getOnlyElement(mediaItemIds), request.getTypedParameter("mediaItem", MediaItem.class), request.getToken()); }
@Operation(httpMethods = "POST", bodyParam = "data") public Future<?> create(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); Set<String> albumIds = ImmutableSet.copyOf(request.getListParameter("albumId")); // Exactly one user and Album must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Exactly one user ID must be specified"); HandlerPreconditions.requireSingular(albumIds, "Exactly one Album ID must be specified"); // Service request return service.createMediaItem(Iterables.getOnlyElement(userIds), request.getAppId(), Iterables.getOnlyElement(albumIds), getRequestMediaItem(request), request.getToken()); }
@Operation(httpMethods = "POST", bodyParam = "data") public Future<?> create(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); Set<String> albumIds = ImmutableSet.copyOf(request.getListParameter("albumId")); // Exactly one user and Album must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Exactly one user ID must be specified"); HandlerPreconditions.requireSingular(albumIds, "Exactly one Album ID must be specified"); // Service request return service.createMediaItem(Iterables.getOnlyElement(userIds), request.getAppId(), Iterables.getOnlyElement(albumIds), getRequestMediaItem(request), request.getToken()); }
@Operation(httpMethods = "POST", bodyParam = "mediaItem") public Future<?> create(SocialRequestItem request) throws ProtocolException { // Retrieve userIds and albumIds Set<UserId> userIds = request.getUsers(); Set<String> albumIds = ImmutableSet.copyOf(request.getListParameter("albumId")); // Exactly one user and Album must be specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Exactly one user ID must be specified"); HandlerPreconditions.requireSingular(albumIds, "Exactly one Album ID must be specified"); // Service request return service.createMediaItem(Iterables.getOnlyElement(userIds), request.getAppId(), Iterables.getOnlyElement(albumIds), request.getTypedParameter("mediaItem", MediaItem.class), request.getToken()); }
/** * Allowed end-points /people/{userId}/{groupId} * * examples: /people/john.doe/@all /people/john.doe/@friends /people/john.doe/@self */ @Operation(httpMethods = "PUT", bodyParam = "person") public Future<?> update(SocialRequestItem request) throws ProtocolException { Set<UserId> userIds = request.getUsers(); // Enforce preconditions - exactly one user is specified HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); UserId userId = userIds.iterator().next(); // Update person and return it return personService.updatePerson(Iterables.getOnlyElement(userIds), request.getTypedParameter("person", Person.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 = "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 = "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 { Set<UserId> userIds = request.getUsers(); CollectionOptions options = collectionOptionsFactory.create(request); // Preconditions HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Only one userId must be specified"); return service.getGroups(userIds.iterator().next(), options, request.getFields(), request.getToken()); } }
@Operation(httpMethods = "GET") public Future<?> get(SocialRequestItem request) throws ProtocolException { Set<UserId> userIds = request.getUsers(); CollectionOptions options = collectionOptionsFactory.create(request); // Preconditions HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Only one userId must be specified"); return service.getGroups(userIds.iterator().next(), options, request.getFields(), request.getToken()); } }
@Operation(httpMethods = "GET") public Future<?> get(SocialRequestItem request) throws ProtocolException { Set<UserId> userIds = request.getUsers(); CollectionOptions options = new CollectionOptions(request); // Preconditions HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Only one userId must be specified"); return service.getGroups(userIds.iterator().next(), options, request.getFields(), 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 = "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 = "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()); }
/** * Allowed endpoints /appdata/{userId}/{groupId}/{appId} - fields={field1, field2} * * examples: /appdata/john.doe/@friends/app?fields=count /appdata/john.doe/@self/app * * The post data should be a regular json object. All of the fields vars will be pulled from the * values and set on the person object. If there are no fields vars then all of the data will be * overridden. */ @Operation(httpMethods = "DELETE") public Future<?> delete(SocialRequestItem request) throws ProtocolException { Set<UserId> userIds = request.getUsers(); HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); return service.deletePersonData(userIds.iterator().next(), request.getGroup(), request.getAppId(), request.getFields(), request.getToken()); }
@Operation(httpMethods = "DELETE") public Future<?> delete(SocialRequestItem request) throws ProtocolException { Set<UserId> userIds = request.getUsers(); String msgCollId = request.getParameter("msgCollId"); List<String> messageIds = request.getListParameter("messageIds"); HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); if (msgCollId == null) { throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST, "A message collection is required"); } HandlerPreconditions.requireNotEmpty(messageIds, "No message IDs specified"); UserId user = request.getUsers().iterator().next(); return service.deleteMessages(user, msgCollId, messageIds, 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 = "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 = "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()); }