From cbcd8713363b21f19d49f1eae4bb40b05db5ecc9 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Mon, 3 Feb 2025 10:58:43 +0100 Subject: [PATCH] DEVEXP-728: Provide 'create()' Group helper function wihtout any parameter --- .../api/v1/adapters/GroupsServiceTest.java | 28 +++++++++++++++++++ .../sdk/domains/sms/api/v1/GroupsService.java | 8 ++++++ .../api/v1/adapters/GroupsServiceImpl.java | 4 +++ 3 files changed, 40 insertions(+) diff --git a/client/src/test/java/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceTest.java b/client/src/test/java/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceTest.java index 35e49e913..6b59b98f4 100644 --- a/client/src/test/java/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceTest.java +++ b/client/src/test/java/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceTest.java @@ -117,6 +117,34 @@ void get() throws ApiException { TestHelpers.recursiveEquals(response, groupDto); } + @Test + void createDefault() throws ApiException { + + HttpRequest httpRequest = + new HttpRequest( + "/xms/v1/" + URLPathUtils.encodePathSegment(SERVICE_PLAN_ID) + "/groups", + HttpMethod.POST, + Collections.emptyList(), + // SMS is expecting an empty body but do not accept a NULL one + "{}", + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(SMS_AUTH_NAMES)); + HttpResponse httpResponse = + new HttpResponse(200, null, Collections.emptyMap(), jsonGroupDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); + + Group response = service.create(); + + TestHelpers.recursiveEquals(response, groupDto); + } + @Test void create() throws ApiException { diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/GroupsService.java b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/GroupsService.java index f40560e1e..f7bfc73d9 100644 --- a/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/GroupsService.java +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/GroupsService.java @@ -115,4 +115,12 @@ public interface GroupsService { * @throws ApiException if fails to make API call */ Group update(String groupId, GroupUpdateRequest groupUpdateRequest) throws ApiException; + + /** + * Create an unnamed and empty group + * + * @return See {@link #create(GroupRequest)} + * @since 1.5 + */ + Group create() throws ApiException; } diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceImpl.java b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceImpl.java index 3c2f2107d..bea2de782 100644 --- a/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceImpl.java +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/api/v1/adapters/GroupsServiceImpl.java @@ -523,4 +523,8 @@ private HttpRequest updateRequestBuilder(String groupId, GroupUpdateRequest grou localVarContentTypes, localVarAuthNames); } + + public Group create() throws ApiException { + return this.create(GroupRequest.builder().build()); + } }