1111import com .auth0 .client .mgmt .core .ObjectMappers ;
1212import com .auth0 .client .mgmt .core .QueryStringMapper ;
1313import com .auth0 .client .mgmt .core .RequestOptions ;
14+ import com .auth0 .client .mgmt .core .SyncPagingIterable ;
1415import com .auth0 .client .mgmt .errors .BadRequestError ;
1516import com .auth0 .client .mgmt .errors .ConflictError ;
1617import com .auth0 .client .mgmt .errors .ForbiddenError ;
2021import com .auth0 .client .mgmt .types .CreateEventStreamResponseContent ;
2122import com .auth0 .client .mgmt .types .CreateEventStreamTestEventRequestContent ;
2223import com .auth0 .client .mgmt .types .CreateEventStreamTestEventResponseContent ;
24+ import com .auth0 .client .mgmt .types .EventStreamResponseContent ;
2325import com .auth0 .client .mgmt .types .EventStreamsCreateRequest ;
2426import com .auth0 .client .mgmt .types .GetEventStreamResponseContent ;
2527import com .auth0 .client .mgmt .types .ListEventStreamsRequestParameters ;
2830import com .auth0 .client .mgmt .types .UpdateEventStreamResponseContent ;
2931import com .fasterxml .jackson .core .JsonProcessingException ;
3032import java .io .IOException ;
33+ import java .util .Collections ;
34+ import java .util .List ;
35+ import java .util .Optional ;
3136import java .util .concurrent .CompletableFuture ;
37+ import java .util .concurrent .ExecutionException ;
3238import okhttp3 .Call ;
3339import okhttp3 .Callback ;
3440import okhttp3 .Headers ;
@@ -47,16 +53,16 @@ public AsyncRawEventStreamsClient(ClientOptions clientOptions) {
4753 this .clientOptions = clientOptions ;
4854 }
4955
50- public CompletableFuture <ManagementApiHttpResponse <ListEventStreamsResponseContent >> list () {
56+ public CompletableFuture <ManagementApiHttpResponse <SyncPagingIterable < EventStreamResponseContent > >> list () {
5157 return list (ListEventStreamsRequestParameters .builder ().build ());
5258 }
5359
54- public CompletableFuture <ManagementApiHttpResponse <ListEventStreamsResponseContent >> list (
60+ public CompletableFuture <ManagementApiHttpResponse <SyncPagingIterable < EventStreamResponseContent > >> list (
5561 ListEventStreamsRequestParameters request ) {
5662 return list (request , null );
5763 }
5864
59- public CompletableFuture <ManagementApiHttpResponse <ListEventStreamsResponseContent >> list (
65+ public CompletableFuture <ManagementApiHttpResponse <SyncPagingIterable < EventStreamResponseContent > >> list (
6066 ListEventStreamsRequestParameters request , RequestOptions requestOptions ) {
6167 HttpUrl .Builder httpUrl = HttpUrl .parse (this .clientOptions .environment ().getUrl ())
6268 .newBuilder ()
@@ -76,17 +82,34 @@ public CompletableFuture<ManagementApiHttpResponse<ListEventStreamsResponseConte
7682 if (requestOptions != null && requestOptions .getTimeout ().isPresent ()) {
7783 client = clientOptions .httpClientWithTimeout (requestOptions );
7884 }
79- CompletableFuture <ManagementApiHttpResponse <ListEventStreamsResponseContent >> future =
85+ CompletableFuture <ManagementApiHttpResponse <SyncPagingIterable < EventStreamResponseContent > >> future =
8086 new CompletableFuture <>();
8187 client .newCall (okhttpRequest ).enqueue (new Callback () {
8288 @ Override
8389 public void onResponse (@ NotNull Call call , @ NotNull Response response ) throws IOException {
8490 try (ResponseBody responseBody = response .body ()) {
8591 String responseBodyString = responseBody != null ? responseBody .string () : "{}" ;
8692 if (response .isSuccessful ()) {
93+ ListEventStreamsResponseContent parsedResponse = ObjectMappers .JSON_MAPPER .readValue (
94+ responseBodyString , ListEventStreamsResponseContent .class );
95+ Optional <String > startingAfter = parsedResponse .getNext ();
96+ ListEventStreamsRequestParameters nextRequest = ListEventStreamsRequestParameters .builder ()
97+ .from (request )
98+ .from (startingAfter )
99+ .build ();
100+ List <EventStreamResponseContent > result =
101+ parsedResponse .getEventStreams ().orElse (Collections .emptyList ());
87102 future .complete (new ManagementApiHttpResponse <>(
88- ObjectMappers .JSON_MAPPER .readValue (
89- responseBodyString , ListEventStreamsResponseContent .class ),
103+ new SyncPagingIterable <EventStreamResponseContent >(
104+ startingAfter .isPresent (), result , parsedResponse , () -> {
105+ try {
106+ return list (nextRequest , requestOptions )
107+ .get ()
108+ .body ();
109+ } catch (InterruptedException | ExecutionException e ) {
110+ throw new RuntimeException (e );
111+ }
112+ }),
90113 response ));
91114 return ;
92115 }
0 commit comments