Skip to content

Commit

Permalink
added pagination to webhooks list. formatting. (#89)
Browse files Browse the repository at this point in the history
  • Loading branch information
xgp authored Jan 6, 2025
1 parent 4dbd2c2 commit 5efe9da
Show file tree
Hide file tree
Showing 5 changed files with 277 additions and 289 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ private ExtendedAdminEvent completeAdminEventAttributes(String uid, Event event)
private ExtendedAdminEvent completeAdminEventAttributes(String uid, AdminEvent adminEvent) {
RealmModel eventRealm = session.realms().getRealm(adminEvent.getRealmId());
RealmModel authRealm = session.realms().getRealm(adminEvent.getAuthDetails().getRealmId());
ExtendedAdminEvent extendedAdminEvent = new ExtendedAdminEvent(uid, adminEvent, eventRealm, authRealm);
ExtendedAdminEvent extendedAdminEvent =
new ExtendedAdminEvent(uid, adminEvent, eventRealm, authRealm);
// add always missing agent username
ExtendedAuthDetails extendedAuthDetails = extendedAdminEvent.getAuthDetails();
if (!Strings.isNullOrEmpty(extendedAuthDetails.getUserId())) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ private static String createType(Event event) {

public ExtendedAdminEvent() {}

public ExtendedAdminEvent(String uid, AdminEvent event, RealmModel eventRealm, RealmModel authRealm) {
public ExtendedAdminEvent(
String uid, AdminEvent event, RealmModel eventRealm, RealmModel authRealm) {
this.uid = uid;
this.type = createType(event);

Expand Down
12 changes: 10 additions & 2 deletions src/main/java/io/phasetwo/keycloak/resources/WebhooksResource.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,19 @@ public WebhooksResource(KeycloakSession session) {
this.webhooks = session.getProvider(WebhookProvider.class);
}

private static final Integer DEFAULT_MAX_RESULTS = 100;

@GET
@Produces(MediaType.APPLICATION_JSON)
public Stream<WebhookRepresentation> getWebhooks() {
public Stream<WebhookRepresentation> getWebhooks(
@QueryParam("first") Integer firstResult, @QueryParam("max") Integer maxResults) {
permissions.realm().requireViewEvents();
return webhooks.getWebhooksStream(realm).map(w -> toRepresentation(w));
firstResult = firstResult != null ? firstResult : 0;
maxResults =
(maxResults != null && maxResults <= DEFAULT_MAX_RESULTS)
? maxResults
: DEFAULT_MAX_RESULTS;
return webhooks.getWebhooksStream(realm, firstResult, maxResults).map(w -> toRepresentation(w));
}

private WebhookRepresentation toRepresentation(WebhookModel w) {
Expand Down
19 changes: 8 additions & 11 deletions src/test/java/io/phasetwo/keycloak/Helpers.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,18 +88,15 @@ public static String createWebhook(
}

public static void removeWebhook(
Keycloak keycloak,
CloseableHttpClient httpClient,
String baseUrl,
String webhookId)
throws Exception {
Keycloak keycloak, CloseableHttpClient httpClient, String baseUrl, String webhookId)
throws Exception {

LegacySimpleHttp.Response response =
LegacySimpleHttp.doDelete(baseUrl + "/" + webhookId, httpClient)
.auth(keycloak.tokenManager().getAccessTokenString())
.asResponse();
assertThat(response.getStatus(), is(204));
}
LegacySimpleHttp.Response response =
LegacySimpleHttp.doDelete(baseUrl + "/" + webhookId, httpClient)
.auth(keycloak.tokenManager().getAccessTokenString())
.asResponse();
assertThat(response.getStatus(), is(204));
}

public static String urlencode(String u) {
try {
Expand Down
Loading

0 comments on commit 5efe9da

Please sign in to comment.