diff --git a/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsEndpoint.java b/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsEndpoint.java index 461182eefc..2a88b9604e 100644 --- a/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsEndpoint.java +++ b/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsEndpoint.java @@ -318,7 +318,7 @@ private void removeIncomingPhoneNumbers(Sid accountSid, IncomingPhoneNumbersDao - protected Response getAccounts(final MediaType responseType) { + protected Response getAccounts(final MultivaluedMap data, final MediaType responseType) { checkAuthenticatedAccount(); //First check if the account has the required permissions in general, this way we can fail fast and avoid expensive DAO operations checkPermission("RestComm:Read:Accounts"); diff --git a/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsJsonEndpoint.java b/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsJsonEndpoint.java index 34273f2508..a1fdfc7dd5 100644 --- a/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsJsonEndpoint.java +++ b/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsJsonEndpoint.java @@ -58,8 +58,8 @@ public Response optionsAccount(@PathParam("accountSid") final String accountSid) } @GET - public Response getAccounts() { - return getAccounts(APPLICATION_JSON_TYPE); + public Response getAccounts(final MultivaluedMap data) { + return getAccounts(data, APPLICATION_JSON_TYPE); } /* disabled as #1270 diff --git a/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsXmlEndpoint.java b/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsXmlEndpoint.java index fe65c15171..581b1080ad 100644 --- a/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsXmlEndpoint.java +++ b/restcomm/restcomm.http/src/main/java/org/restcomm/connect/http/AccountsXmlEndpoint.java @@ -58,8 +58,8 @@ public Response getAccountAsXml(@PathParam("accountSid") final String accountSid } @GET - public Response getAccounts() { - return getAccounts(APPLICATION_XML_TYPE); + public Response getAccounts(final MultivaluedMap data) { + return getAccounts(data, APPLICATION_XML_TYPE); } @Consumes(APPLICATION_FORM_URLENCODED) diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java index 81c01d5658..2efb3ad5bf 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java @@ -605,7 +605,9 @@ public void testCreateAccountInSpecificOrganization() { @Test public void testGetAccountsOfASpecificOrganization() { - ClientResponse response = RestcommAccountsTool.getInstance().getAccountsResponse(deploymentUrl.toString(), adminUsername, adminAuthToken); + //without any parameters + ClientResponse response = RestcommAccountsTool.getInstance().getAccountsWithFilterResponse(deploymentUrl.toString(), adminUsername, adminAuthToken, null, null, null); + logger.info("getAccountsWithFilterResponse: "+response); assertEquals(200, response.getStatus()); } diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/RestcommAccountsTool.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/RestcommAccountsTool.java index 76ec2da9f5..e748a0ac5b 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/RestcommAccountsTool.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/RestcommAccountsTool.java @@ -181,6 +181,24 @@ public ClientResponse getAccountsResponse (String deploymentUrl, String username return response; } + public ClientResponse getAccountsWithFilterResponse (String deploymentUrl, String username, String authtoken, String organizationSid, String domainName, String baseAccount) { + Client jerseyClient = Client.create(); + jerseyClient.addFilter(new HTTPBasicAuthFilter(username, authtoken)); + WebResource webResource = jerseyClient.resource(getAccountsUrl(deploymentUrl)); + + MultivaluedMap params = new MultivaluedMapImpl(); + if(organizationSid != null && !(organizationSid.trim().isEmpty())) + params.add("OrganizationSid", organizationSid); + if(domainName != null && !(domainName.trim().isEmpty())) + params.add("DomainName", domainName); + if(baseAccount != null && !(baseAccount.trim().isEmpty())) + params.add("BaseAccount", baseAccount); + + ClientResponse response = webResource.queryParams(params).accept(MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML) + .get(ClientResponse.class); + return response; + } + public ClientResponse removeAccountResponse (String deploymentUrl, String operatingUsername, String operatingAuthToken, String removedAccountSid) { Client jerseyClient = Client.create(); jerseyClient.addFilter(new HTTPBasicAuthFilter(operatingUsername, operatingAuthToken));