diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java b/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java index d174d920b..d1ec83648 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java +++ b/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java @@ -16,6 +16,7 @@ */ package org.whispersystems.textsecuregcm.controllers; +import com.google.common.base.Optional; import com.yammer.dropwizard.auth.Auth; import com.yammer.metrics.annotation.Timed; import org.slf4j.Logger; @@ -94,23 +95,15 @@ public class KeysController { @GET @Path("/{number}") @Produces(MediaType.APPLICATION_JSON) - public PreKey get(@Auth Account account, - @PathParam("number") String number, - @QueryParam("relay") String relay) + public Response get(@Auth Account account, + @PathParam("number") String number, + @QueryParam("multikeys") Optional multikey, + @QueryParam("relay") String relay) throws RateLimitExceededException { - return getKeys(account, number, relay).get(0); - } - - @Timed - @GET - @Path("/multikeys/{number}") - @Produces(MediaType.APPLICATION_JSON) - public List getMultiDevice(@Auth Account account, - @PathParam("number") String number, - @QueryParam("relay") String relay) - throws RateLimitExceededException - { - return getKeys(account, number, relay); + if (!multikey.isPresent()) + return Response.ok(getKeys(account, number, relay).get(0)).type(MediaType.APPLICATION_JSON).build(); + else + return Response.ok(getKeys(account, number, relay)).type(MediaType.APPLICATION_JSON).build(); } } diff --git a/src/test/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java b/src/test/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java index 1c627265a..ca1be41a1 100644 --- a/src/test/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java +++ b/src/test/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java @@ -75,7 +75,7 @@ public class KeyControllerTest extends ResourceTest { verify(keys).get(eq(EXISTS_NUMBER), eq(Arrays.asList(fakeAccount))); verifyNoMoreInteractions(keys); - List results = client().resource(String.format("/v1/keys/multikeys/%s", EXISTS_NUMBER)) + List results = client().resource(String.format("/v1/keys/%s?multikeys", EXISTS_NUMBER)) .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_NUMBER, AuthHelper.VALID_PASSWORD)) .get(new GenericType>(){});