Skip to content

Commit eabdc8a

Browse files
JPPortieredu-sinch
andauthored
feat (pagination): Support requets builder for pagination based onto Function to consume a requested path parameters list (#339)
Co-authored-by: Eduardo San Segundo <investing.edu.bh@gmail.com>
1 parent 41f8112 commit eabdc8a

12 files changed

Lines changed: 132 additions & 58 deletions

File tree

openapi-contracts/src/main/com/sinch/sdk/domains/conversation/api/v1/adapters/ContactsServiceImpl.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import java.util.HashMap;
4747
import java.util.List;
4848
import java.util.Map;
49+
import java.util.function.Function;
4950
import java.util.logging.Logger;
5051

5152
public class ContactsServiceImpl
@@ -84,11 +85,15 @@ public ContactsListResponse list(ContactsListQueryParameters queryParameter) thr
8485
LOGGER.finest("[list]" + " " + "queryParameter: " + queryParameter);
8586

8687
HttpRequest httpRequest = listRequestBuilder(queryParameter);
87-
return _fetchListPage(queryParameter, httpRequest);
88+
return _fetchListPage(
89+
(queryParameters) -> listRequestBuilder(queryParameters), queryParameter, httpRequest);
8890
}
8991

9092
private ContactsListResponse _fetchListPage(
91-
ContactsListQueryParameters queryParameter, HttpRequest httpRequest) throws ApiException {
93+
Function<ContactsListQueryParameters, HttpRequest> requestBuilder,
94+
ContactsListQueryParameters queryParameter,
95+
HttpRequest httpRequest)
96+
throws ApiException {
9297
HttpResponse response =
9398
httpClient.invokeAPI(
9499
this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest);
@@ -104,10 +109,10 @@ private ContactsListResponse _fetchListPage(
104109
ContactsListQueryParameters.builder(queryParameter).setPageToken(nextToken).build();
105110

106111
final HttpRequest nextHttpRequest =
107-
!StringUtil.isEmpty(nextToken) ? listRequestBuilder(nextParameters) : null;
112+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
108113

109114
return new ContactsListResponse(
110-
() -> _fetchListPage(nextParameters, nextHttpRequest),
115+
() -> _fetchListPage(requestBuilder, nextParameters, nextHttpRequest),
111116
new Page<>(deserialized.getContacts(), new PageNavigator<>(nextHttpRequest)));
112117
}
113118
// fallback to default errors handling:
@@ -480,11 +485,16 @@ public IdentityConflictsListResponse listIdentityConflicts(
480485
LOGGER.finest("[listIdentityConflicts]" + " " + "queryParameter: " + queryParameter);
481486

482487
HttpRequest httpRequest = listIdentityConflictsRequestBuilder(queryParameter);
483-
return _fetchListIdentityConflictsPage(queryParameter, httpRequest);
488+
return _fetchListIdentityConflictsPage(
489+
(queryParameters) -> listIdentityConflictsRequestBuilder(queryParameters),
490+
queryParameter,
491+
httpRequest);
484492
}
485493

486494
private IdentityConflictsListResponse _fetchListIdentityConflictsPage(
487-
IdentityConflictsListQueryParameters queryParameter, HttpRequest httpRequest)
495+
Function<IdentityConflictsListQueryParameters, HttpRequest> requestBuilder,
496+
IdentityConflictsListQueryParameters queryParameter,
497+
HttpRequest httpRequest)
488498
throws ApiException {
489499
HttpResponse response =
490500
httpClient.invokeAPI(
@@ -504,12 +514,10 @@ private IdentityConflictsListResponse _fetchListIdentityConflictsPage(
504514
.build();
505515

506516
final HttpRequest nextHttpRequest =
507-
!StringUtil.isEmpty(nextToken)
508-
? listIdentityConflictsRequestBuilder(nextParameters)
509-
: null;
517+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
510518

511519
return new IdentityConflictsListResponse(
512-
() -> _fetchListIdentityConflictsPage(nextParameters, nextHttpRequest),
520+
() -> _fetchListIdentityConflictsPage(requestBuilder, nextParameters, nextHttpRequest),
513521
new Page<>(deserialized.getConflicts(), new PageNavigator<>(nextHttpRequest)));
514522
}
515523
// fallback to default errors handling:

openapi-contracts/src/main/com/sinch/sdk/domains/conversation/api/v1/adapters/ConversationsServiceImpl.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import java.util.HashMap;
4646
import java.util.List;
4747
import java.util.Map;
48+
import java.util.function.Function;
4849
import java.util.logging.Logger;
4950

5051
public class ConversationsServiceImpl
@@ -84,11 +85,14 @@ public ConversationsListResponse list(ConversationsListQueryParameters queryPara
8485
LOGGER.finest("[list]" + " " + "queryParameter: " + queryParameter);
8586

8687
HttpRequest httpRequest = listRequestBuilder(queryParameter);
87-
return _fetchListPage(queryParameter, httpRequest);
88+
return _fetchListPage(
89+
(queryParameters) -> listRequestBuilder(queryParameters), queryParameter, httpRequest);
8890
}
8991

9092
private ConversationsListResponse _fetchListPage(
91-
ConversationsListQueryParameters queryParameter, HttpRequest httpRequest)
93+
Function<ConversationsListQueryParameters, HttpRequest> requestBuilder,
94+
ConversationsListQueryParameters queryParameter,
95+
HttpRequest httpRequest)
9296
throws ApiException {
9397
HttpResponse response =
9498
httpClient.invokeAPI(
@@ -105,10 +109,10 @@ private ConversationsListResponse _fetchListPage(
105109
ConversationsListQueryParameters.builder(queryParameter).setPageToken(nextToken).build();
106110

107111
final HttpRequest nextHttpRequest =
108-
!StringUtil.isEmpty(nextToken) ? listRequestBuilder(nextParameters) : null;
112+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
109113

110114
return new ConversationsListResponse(
111-
() -> _fetchListPage(nextParameters, nextHttpRequest),
115+
() -> _fetchListPage(requestBuilder, nextParameters, nextHttpRequest),
112116
new Page<>(deserialized.getConversations(), new PageNavigator<>(nextHttpRequest)));
113117
}
114118
// fallback to default errors handling:
@@ -563,11 +567,16 @@ public RecentConversationsListResponse listRecent(
563567
LOGGER.finest("[listRecent]" + " " + "queryParameter: " + queryParameter);
564568

565569
HttpRequest httpRequest = listRecentRequestBuilder(queryParameter);
566-
return _fetchListRecentPage(queryParameter, httpRequest);
570+
return _fetchListRecentPage(
571+
(queryParameters) -> listRecentRequestBuilder(queryParameters),
572+
queryParameter,
573+
httpRequest);
567574
}
568575

569576
private RecentConversationsListResponse _fetchListRecentPage(
570-
RecentConversationsListQueryParameters queryParameter, HttpRequest httpRequest)
577+
Function<RecentConversationsListQueryParameters, HttpRequest> requestBuilder,
578+
RecentConversationsListQueryParameters queryParameter,
579+
HttpRequest httpRequest)
571580
throws ApiException {
572581
HttpResponse response =
573582
httpClient.invokeAPI(
@@ -587,10 +596,10 @@ private RecentConversationsListResponse _fetchListRecentPage(
587596
.build();
588597

589598
final HttpRequest nextHttpRequest =
590-
!StringUtil.isEmpty(nextToken) ? listRecentRequestBuilder(nextParameters) : null;
599+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
591600

592601
return new RecentConversationsListResponse(
593-
() -> _fetchListRecentPage(nextParameters, nextHttpRequest),
602+
() -> _fetchListRecentPage(requestBuilder, nextParameters, nextHttpRequest),
594603
new Page<>(deserialized.getConversations(), new PageNavigator<>(nextHttpRequest)));
595604
}
596605
// fallback to default errors handling:

openapi-contracts/src/main/com/sinch/sdk/domains/conversation/api/v1/adapters/EventsServiceImpl.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import java.util.HashMap;
4040
import java.util.List;
4141
import java.util.Map;
42+
import java.util.function.Function;
4243
import java.util.logging.Logger;
4344

4445
public class EventsServiceImpl implements com.sinch.sdk.domains.conversation.api.v1.EventsService {
@@ -76,11 +77,15 @@ public EventsListResponse list(EventsListQueryParameters queryParameter) throws
7677
LOGGER.finest("[list]" + " " + "queryParameter: " + queryParameter);
7778

7879
HttpRequest httpRequest = listRequestBuilder(queryParameter);
79-
return _fetchListPage(queryParameter, httpRequest);
80+
return _fetchListPage(
81+
(queryParameters) -> listRequestBuilder(queryParameters), queryParameter, httpRequest);
8082
}
8183

8284
private EventsListResponse _fetchListPage(
83-
EventsListQueryParameters queryParameter, HttpRequest httpRequest) throws ApiException {
85+
Function<EventsListQueryParameters, HttpRequest> requestBuilder,
86+
EventsListQueryParameters queryParameter,
87+
HttpRequest httpRequest)
88+
throws ApiException {
8489
HttpResponse response =
8590
httpClient.invokeAPI(
8691
this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest);
@@ -96,10 +101,10 @@ private EventsListResponse _fetchListPage(
96101
EventsListQueryParameters.builder(queryParameter).setPageToken(nextToken).build();
97102

98103
final HttpRequest nextHttpRequest =
99-
!StringUtil.isEmpty(nextToken) ? listRequestBuilder(nextParameters) : null;
104+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
100105

101106
return new EventsListResponse(
102-
() -> _fetchListPage(nextParameters, nextHttpRequest),
107+
() -> _fetchListPage(requestBuilder, nextParameters, nextHttpRequest),
103108
new Page<>(deserialized.getEvents(), new PageNavigator<>(nextHttpRequest)));
104109
}
105110
// fallback to default errors handling:

openapi-contracts/src/main/com/sinch/sdk/domains/conversation/api/v1/adapters/MessagesServiceImpl.java

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import java.util.HashMap;
5555
import java.util.List;
5656
import java.util.Map;
57+
import java.util.function.Function;
5758
import java.util.logging.Logger;
5859

5960
public class MessagesServiceImpl
@@ -92,11 +93,15 @@ public MessagesListResponse list(MessagesListQueryParameters queryParameter) thr
9293
LOGGER.finest("[list]" + " " + "queryParameter: " + queryParameter);
9394

9495
HttpRequest httpRequest = listRequestBuilder(queryParameter);
95-
return _fetchListPage(queryParameter, httpRequest);
96+
return _fetchListPage(
97+
(queryParameters) -> listRequestBuilder(queryParameters), queryParameter, httpRequest);
9698
}
9799

98100
private MessagesListResponse _fetchListPage(
99-
MessagesListQueryParameters queryParameter, HttpRequest httpRequest) throws ApiException {
101+
Function<MessagesListQueryParameters, HttpRequest> requestBuilder,
102+
MessagesListQueryParameters queryParameter,
103+
HttpRequest httpRequest)
104+
throws ApiException {
100105
HttpResponse response =
101106
httpClient.invokeAPI(
102107
this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest);
@@ -112,10 +117,10 @@ private MessagesListResponse _fetchListPage(
112117
MessagesListQueryParameters.builder(queryParameter).setPageToken(nextToken).build();
113118

114119
final HttpRequest nextHttpRequest =
115-
!StringUtil.isEmpty(nextToken) ? listRequestBuilder(nextParameters) : null;
120+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
116121

117122
return new MessagesListResponse(
118-
() -> _fetchListPage(nextParameters, nextHttpRequest),
123+
() -> _fetchListPage(requestBuilder, nextParameters, nextHttpRequest),
119124
new Page<>(deserialized.getMessages(), new PageNavigator<>(nextHttpRequest)));
120125
}
121126
// fallback to default errors handling:
@@ -438,11 +443,16 @@ public MessagesListResponse listLastMessagesByChannelIdentity(
438443
"[listLastMessagesByChannelIdentity]" + " " + "queryParameter: " + queryParameter);
439444

440445
HttpRequest httpRequest = listLastMessagesByChannelIdentityRequestBuilder(queryParameter);
441-
return _fetchListLastMessagesByChannelIdentityPage(queryParameter, httpRequest);
446+
return _fetchListLastMessagesByChannelIdentityPage(
447+
(queryParameters) -> listLastMessagesByChannelIdentityRequestBuilder(queryParameters),
448+
queryParameter,
449+
httpRequest);
442450
}
443451

444452
private MessagesListResponse _fetchListLastMessagesByChannelIdentityPage(
445-
LastMessagesByChannelIdentityListQueryParameters queryParameter, HttpRequest httpRequest)
453+
Function<LastMessagesByChannelIdentityListQueryParameters, HttpRequest> requestBuilder,
454+
LastMessagesByChannelIdentityListQueryParameters queryParameter,
455+
HttpRequest httpRequest)
446456
throws ApiException {
447457
HttpResponse response =
448458
httpClient.invokeAPI(
@@ -461,12 +471,12 @@ private MessagesListResponse _fetchListLastMessagesByChannelIdentityPage(
461471
.build();
462472

463473
final HttpRequest nextHttpRequest =
464-
!StringUtil.isEmpty(nextToken)
465-
? listLastMessagesByChannelIdentityRequestBuilder(nextParameters)
466-
: null;
474+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
467475

468476
return new MessagesListResponse(
469-
() -> _fetchListLastMessagesByChannelIdentityPage(nextParameters, nextHttpRequest),
477+
() ->
478+
_fetchListLastMessagesByChannelIdentityPage(
479+
requestBuilder, nextParameters, nextHttpRequest),
470480
new Page<>(deserialized.getMessages(), new PageNavigator<>(nextHttpRequest)));
471481
}
472482
// fallback to default errors handling:

openapi-contracts/src/main/com/sinch/sdk/domains/conversation/templates/api/v2/adapters/TemplatesV2ServiceImpl.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.util.HashMap;
3838
import java.util.List;
3939
import java.util.Map;
40+
import java.util.function.Function;
4041
import java.util.logging.Logger;
4142

4243
public class TemplatesV2ServiceImpl
@@ -339,11 +340,17 @@ public TranslationsV2ListResponse listTranslations(
339340
+ queryParameter);
340341

341342
HttpRequest httpRequest = listTranslationsRequestBuilder(templateId, queryParameter);
342-
return _fetchListTranslationsPage(queryParameter, httpRequest);
343+
return _fetchListTranslationsPage(
344+
(queryParameters) -> listTranslationsRequestBuilder(templateId, queryParameters),
345+
queryParameter,
346+
httpRequest);
343347
}
344348

345349
private TranslationsV2ListResponse _fetchListTranslationsPage(
346-
ListTranslationsQueryParameters queryParameter, HttpRequest httpRequest) throws ApiException {
350+
Function<ListTranslationsQueryParameters, HttpRequest> requestBuilder,
351+
ListTranslationsQueryParameters queryParameter,
352+
HttpRequest httpRequest)
353+
throws ApiException {
347354
HttpResponse response =
348355
httpClient.invokeAPI(
349356
this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest);

openapi-contracts/src/main/com/sinch/sdk/domains/numbers/api/v1/adapters/ActiveNumberServiceImpl.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import java.util.HashMap;
4242
import java.util.List;
4343
import java.util.Map;
44+
import java.util.function.Function;
4445
import java.util.logging.Logger;
4546

4647
public class ActiveNumberServiceImpl
@@ -84,11 +85,14 @@ public ActiveNumbersListResponse list(ActiveNumbersListQueryParameters queryPara
8485
LOGGER.finest("[list]" + " " + "queryParameter: " + queryParameter);
8586

8687
HttpRequest httpRequest = listRequestBuilder(queryParameter);
87-
return _fetchListPage(queryParameter, httpRequest);
88+
return _fetchListPage(
89+
(queryParameters) -> listRequestBuilder(queryParameters), queryParameter, httpRequest);
8890
}
8991

9092
private ActiveNumbersListResponse _fetchListPage(
91-
ActiveNumbersListQueryParameters queryParameter, HttpRequest httpRequest)
93+
Function<ActiveNumbersListQueryParameters, HttpRequest> requestBuilder,
94+
ActiveNumbersListQueryParameters queryParameter,
95+
HttpRequest httpRequest)
9296
throws ApiException {
9397
HttpResponse response =
9498
httpClient.invokeAPI(
@@ -105,10 +109,10 @@ private ActiveNumbersListResponse _fetchListPage(
105109
ActiveNumbersListQueryParameters.builder(queryParameter).setPageToken(nextToken).build();
106110

107111
final HttpRequest nextHttpRequest =
108-
!StringUtil.isEmpty(nextToken) ? listRequestBuilder(nextParameters) : null;
112+
!StringUtil.isEmpty(nextToken) ? requestBuilder.apply(nextParameters) : null;
109113

110114
return new ActiveNumbersListResponse(
111-
() -> _fetchListPage(nextParameters, nextHttpRequest),
115+
() -> _fetchListPage(requestBuilder, nextParameters, nextHttpRequest),
112116
new Page<>(deserialized.getActiveNumbers(), new PageNavigator<>(nextHttpRequest)));
113117
}
114118
// fallback to default errors handling:

openapi-contracts/src/main/com/sinch/sdk/domains/numbers/api/v1/adapters/AvailableNumberServiceImpl.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import java.util.HashMap;
3939
import java.util.List;
4040
import java.util.Map;
41+
import java.util.function.Function;
4142
import java.util.logging.Logger;
4243

4344
public class AvailableNumberServiceImpl
@@ -284,11 +285,16 @@ public AvailableNumbersListResponse searchForAvailableNumbers(
284285
LOGGER.finest("[searchForAvailableNumbers]" + " " + "queryParameter: " + queryParameter);
285286

286287
HttpRequest httpRequest = searchForAvailableNumbersRequestBuilder(queryParameter);
287-
return _fetchSearchForAvailableNumbersPage(queryParameter, httpRequest);
288+
return _fetchSearchForAvailableNumbersPage(
289+
(queryParameters) -> searchForAvailableNumbersRequestBuilder(queryParameters),
290+
queryParameter,
291+
httpRequest);
288292
}
289293

290294
private AvailableNumbersListResponse _fetchSearchForAvailableNumbersPage(
291-
AvailableNumbersListQueryParameters queryParameter, HttpRequest httpRequest)
295+
Function<AvailableNumbersListQueryParameters, HttpRequest> requestBuilder,
296+
AvailableNumbersListQueryParameters queryParameter,
297+
HttpRequest httpRequest)
292298
throws ApiException {
293299
HttpResponse response =
294300
httpClient.invokeAPI(

openapi-contracts/src/main/com/sinch/sdk/domains/numbers/api/v1/adapters/AvailableRegionsServiceImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.HashMap;
3535
import java.util.List;
3636
import java.util.Map;
37+
import java.util.function.Function;
3738
import java.util.logging.Logger;
3839

3940
public class AvailableRegionsServiceImpl
@@ -74,11 +75,14 @@ public AvailableRegionsListResponse list(AvailableRegionsListQueryParameters que
7475
LOGGER.finest("[list]" + " " + "queryParameter: " + queryParameter);
7576

7677
HttpRequest httpRequest = listRequestBuilder(queryParameter);
77-
return _fetchListPage(queryParameter, httpRequest);
78+
return _fetchListPage(
79+
(queryParameters) -> listRequestBuilder(queryParameters), queryParameter, httpRequest);
7880
}
7981

8082
private AvailableRegionsListResponse _fetchListPage(
81-
AvailableRegionsListQueryParameters queryParameter, HttpRequest httpRequest)
83+
Function<AvailableRegionsListQueryParameters, HttpRequest> requestBuilder,
84+
AvailableRegionsListQueryParameters queryParameter,
85+
HttpRequest httpRequest)
8286
throws ApiException {
8387
HttpResponse response =
8488
httpClient.invokeAPI(

0 commit comments

Comments
 (0)