diff --git a/src/main/java/com/kintone/client/PluginClient.java b/src/main/java/com/kintone/client/PluginClient.java index 98950ba..307666b 100644 --- a/src/main/java/com/kintone/client/PluginClient.java +++ b/src/main/java/com/kintone/client/PluginClient.java @@ -28,7 +28,7 @@ public class PluginClient { * @return the response data. See {@link GetInstalledPluginsResponseBody} */ public GetInstalledPluginsResponseBody getInstalledPlugins() { - return getInstalledPlugins(null, null); + return getInstalledPlugins(null, null, null); } /** @@ -39,7 +39,31 @@ public GetInstalledPluginsResponseBody getInstalledPlugins() { * @return the response data. See {@link GetInstalledPluginsResponseBody} */ public GetInstalledPluginsResponseBody getInstalledPlugins(Long offset, Long limit) { + return getInstalledPlugins(null, offset, limit); + } + + /** + * Gets the list of plug-ins imported into Kintone. + * + * @param ids The plugin IDs to retrieve. Up to 100 plugin IDs can be specified. + * @return the response data. See {@link GetInstalledPluginsResponseBody} + */ + public GetInstalledPluginsResponseBody getInstalledPlugins(List ids) { + return getInstalledPlugins(ids, null, null); + } + + /** + * Gets the list of plug-ins imported into Kintone. + * + * @param ids The plugin IDs to retrieve. Up to 100 plugin IDs can be specified. + * @param offset The number of plug-ins to skip from the list of installed plug-ins. + * @param limit The maximum number of plug-ins to retrieve. + * @return the response data. See {@link GetInstalledPluginsResponseBody} + */ + public GetInstalledPluginsResponseBody getInstalledPlugins( + List ids, Long offset, Long limit) { GetInstalledPluginsRequest request = new GetInstalledPluginsRequest(); + request.setIds(ids); request.setOffset(offset); request.setLimit(limit); return getInstalledPlugins(request); diff --git a/src/main/java/com/kintone/client/api/plugin/GetInstalledPluginsRequest.java b/src/main/java/com/kintone/client/api/plugin/GetInstalledPluginsRequest.java index 470eb9d..2085c98 100644 --- a/src/main/java/com/kintone/client/api/plugin/GetInstalledPluginsRequest.java +++ b/src/main/java/com/kintone/client/api/plugin/GetInstalledPluginsRequest.java @@ -1,6 +1,7 @@ package com.kintone.client.api.plugin; import com.kintone.client.api.KintoneRequest; +import java.util.List; import lombok.Data; /** A request object for Get Installed Plugins API. */ @@ -12,4 +13,10 @@ public class GetInstalledPluginsRequest implements KintoneRequest { /** The number of plug-ins to skip from the list of installed plug-ins. */ private Long offset; + + /** + * The plugin IDs to retrieve. Up to 100 plugin IDs can be specified. When null or empty array, + * this parameter is omitted. + */ + private List ids; } diff --git a/src/main/java/com/kintone/client/api/plugin/package-info.java b/src/main/java/com/kintone/client/api/plugin/package-info.java new file mode 100644 index 0000000..de47b9e --- /dev/null +++ b/src/main/java/com/kintone/client/api/plugin/package-info.java @@ -0,0 +1,2 @@ +/** Provides request and response objects related to Plugin settings. */ +package com.kintone.client.api.plugin; diff --git a/src/main/java/com/kintone/client/model/plugin/Plugin.java b/src/main/java/com/kintone/client/model/plugin/Plugin.java index 830210e..11e8625 100644 --- a/src/main/java/com/kintone/client/model/plugin/Plugin.java +++ b/src/main/java/com/kintone/client/model/plugin/Plugin.java @@ -17,4 +17,7 @@ public class Plugin { /** The version number of the plug-in. */ private final String version; + + /** The description of the plug-in. Returns an empty string when not set. */ + private final String description; } diff --git a/src/test/java/com/kintone/client/PluginClientTest.java b/src/test/java/com/kintone/client/PluginClientTest.java index 9458e06..62752d1 100644 --- a/src/test/java/com/kintone/client/PluginClientTest.java +++ b/src/test/java/com/kintone/client/PluginClientTest.java @@ -5,6 +5,7 @@ import com.kintone.client.api.plugin.*; import com.kintone.client.model.plugin.App; import com.kintone.client.model.plugin.Plugin; +import java.util.Arrays; import java.util.Collections; import java.util.List; import org.junit.jupiter.api.Test; @@ -40,6 +41,7 @@ public void getInstalledPlugins_Long() { @Test public void getInstalledPlugins_Request() { GetInstalledPluginsRequest req = new GetInstalledPluginsRequest(); + req.setIds(Arrays.asList("plugin1", "plugin2")); req.setOffset(5L); req.setLimit(50L); List plugins = Collections.emptyList(); @@ -51,6 +53,31 @@ public void getInstalledPlugins_Request() { assertThat(mockClient.getLastBody()).isEqualTo(req); } + @Test + public void getInstalledPlugins_List() { + List ids = Arrays.asList("plugin1", "plugin2"); + List plugins = Collections.emptyList(); + GetInstalledPluginsResponseBody resp = new GetInstalledPluginsResponseBody(plugins); + mockClient.setResponseBody(resp); + + assertThat(sut.getInstalledPlugins(ids)).isEqualTo(resp); + assertThat(mockClient.getLastApi()).isEqualTo(KintoneApi.GET_PLUGINS); + assertThat(mockClient.getLastBody()).isEqualTo(new GetInstalledPluginsRequest().setIds(ids)); + } + + @Test + public void getInstalledPlugins_AllParams() { + List ids = Arrays.asList("plugin1", "plugin2"); + List plugins = Collections.emptyList(); + GetInstalledPluginsResponseBody resp = new GetInstalledPluginsResponseBody(plugins); + mockClient.setResponseBody(resp); + + assertThat(sut.getInstalledPlugins(ids, 0L, 1L)).isEqualTo(resp); + assertThat(mockClient.getLastApi()).isEqualTo(KintoneApi.GET_PLUGINS); + assertThat(mockClient.getLastBody()) + .isEqualTo(new GetInstalledPluginsRequest().setIds(ids).setOffset(0L).setLimit(1L)); + } + @Test public void installPlugin_String() { InstallPluginResponseBody resp = new InstallPluginResponseBody("1", "2");