From 1c503f776b859f12ce0f235e17b690e33aa9d02f Mon Sep 17 00:00:00 2001 From: Aditya Alif Nugraha Date: Fri, 5 Sep 2025 11:12:34 +0200 Subject: [PATCH 1/2] Add product scope hook config --- .../io/getstream/chat/java/models/App.java | 18 ++++++++++++ .../java/io/getstream/chat/java/AppTest.java | 28 +++++++++++-------- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/main/java/io/getstream/chat/java/models/App.java b/src/main/java/io/getstream/chat/java/models/App.java index ab281b00b..42aa093a2 100644 --- a/src/main/java/io/getstream/chat/java/models/App.java +++ b/src/main/java/io/getstream/chat/java/models/App.java @@ -375,6 +375,20 @@ public enum HookType { UNKNOWN } + public enum Product { + @JsonProperty("chat") + CHAT, + @JsonProperty("video") + VIDEO, + @JsonProperty("moderation") + MODERATION, + @JsonProperty("feeds") + FEEDS, + @JsonProperty("all") + @JsonEnumDefaultValue + ALL + } + public enum AuthType { @JsonProperty("keys") KEYS, // Using AWS access key and secret key @@ -420,6 +434,10 @@ public static class EventHook { @JsonProperty("enabled") private Boolean enabled; + @Nullable + @JsonProperty("product") + private Product product; + @Nullable @JsonProperty("event_types") private List eventTypes; diff --git a/src/test/java/io/getstream/chat/java/AppTest.java b/src/test/java/io/getstream/chat/java/AppTest.java index 436417a6d..754ccba68 100644 --- a/src/test/java/io/getstream/chat/java/AppTest.java +++ b/src/test/java/io/getstream/chat/java/AppTest.java @@ -184,20 +184,26 @@ void whenUpdatingAppSettingsSizeLimit_thenNoException() { Assertions.assertEquals(newSizeLimit, appConfig.getFileUploadConfig().getSizeLimit()); } - @DisplayName("Can update app settings with webhook event hook") + @DisplayName("Can update app settings with webhook event hooks with different products") @Test - void whenUpdatingAppSettingsWithWebhookEventHook_thenNoException() throws StreamException { - EventHook webhookHook = new EventHook(); - webhookHook.setId("webhook-1"); - webhookHook.setHookType(App.HookType.WEBHOOK); - webhookHook.setEnabled(true); - webhookHook.setEventTypes(Arrays.asList("message.new", "message.updated")); - webhookHook.setWebhookURL("https://example.com/webhook"); - webhookHook.setCreatedAt(new Date()); - webhookHook.setUpdatedAt(new Date()); + void whenUpdatingAppSettingsWithWebhookEventHooks_thenNoException() throws StreamException { + EventHook defaultWebhookHook = new EventHook(); + defaultWebhookHook.setHookType(App.HookType.WEBHOOK); + defaultWebhookHook.setEnabled(true); + defaultWebhookHook.setEventTypes(Arrays.asList("message.new", "message.updated")); + defaultWebhookHook.setWebhookURL("https://example.com/webhook-default"); + + EventHook chatWebhookHook = new EventHook(); + chatWebhookHook.setHookType(App.HookType.WEBHOOK); + chatWebhookHook.setEnabled(true); + chatWebhookHook.setEventTypes(Arrays.asList("message.new", "message.updated")); + chatWebhookHook.setWebhookURL("https://example.com/webhook-chat"); + chatWebhookHook.setProduct(App.Product.CHAT); try { - App.update().eventHooks(Collections.singletonList(webhookHook)).request(); + App.update() + .eventHooks(Arrays.asList(defaultWebhookHook, chatWebhookHook)) + .request(); } catch (StreamException e) { if (e.getMessage().contains("cannot set event hooks in hook v1 system")) { return; From 562b52d8ff5adf1bb99293696bbc9150d8e9c644 Mon Sep 17 00:00:00 2001 From: Aditya Alif Nugraha Date: Fri, 5 Sep 2025 11:22:25 +0200 Subject: [PATCH 2/2] Fix lint --- src/test/java/io/getstream/chat/java/AppTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/test/java/io/getstream/chat/java/AppTest.java b/src/test/java/io/getstream/chat/java/AppTest.java index 754ccba68..df36c8d01 100644 --- a/src/test/java/io/getstream/chat/java/AppTest.java +++ b/src/test/java/io/getstream/chat/java/AppTest.java @@ -201,9 +201,7 @@ void whenUpdatingAppSettingsWithWebhookEventHooks_thenNoException() throws Strea chatWebhookHook.setProduct(App.Product.CHAT); try { - App.update() - .eventHooks(Arrays.asList(defaultWebhookHook, chatWebhookHook)) - .request(); + App.update().eventHooks(Arrays.asList(defaultWebhookHook, chatWebhookHook)).request(); } catch (StreamException e) { if (e.getMessage().contains("cannot set event hooks in hook v1 system")) { return;