From 7999186af6b87580232b6944da63c8ac2c13847a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Karthein?= Date: Fri, 31 Jul 2026 11:03:41 +0200 Subject: [PATCH] WMKNBN-12297 add getPackagesForProject to packagemgmt client --- .../packagemgmt/PackageMgmtClient.java | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/testfabrik/webmate/javasdk/packagemgmt/PackageMgmtClient.java b/src/main/java/com/testfabrik/webmate/javasdk/packagemgmt/PackageMgmtClient.java index 6adceb5..32c235a 100644 --- a/src/main/java/com/testfabrik/webmate/javasdk/packagemgmt/PackageMgmtClient.java +++ b/src/main/java/com/testfabrik/webmate/javasdk/packagemgmt/PackageMgmtClient.java @@ -1,6 +1,7 @@ package com.testfabrik.webmate.javasdk.packagemgmt; import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Optional; @@ -15,6 +16,8 @@ import org.slf4j.LoggerFactory; import java.io.IOException; +import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -37,6 +40,8 @@ private static class PackageMgmtApiClient extends WebmateApiClient { private final static UriTemplate getPackageTemplate = new UriTemplate("/package/packages/${packageId}"); + private final static UriTemplate getPackagesForProjectTemplate = new UriTemplate("/projects/${projectId}/packages/full"); + private final static UriTemplate deletePackageTemplate = new UriTemplate("/package/packages/${packageId}"); @@ -98,16 +103,26 @@ public Package getPackage(PackageId packageId) { throw new WebmateApiClientException("Could not get package. Got no response"); } - Package aPackage; + return buildPackageFromResponse(r); + } + + public Collection getPackagesForProject(ProjectId projectId) { + Optional r = sendGET(getPackagesForProjectTemplate, ImmutableMap.of("projectId", projectId.toString())).getOptHttpResponse(); + + if (!r.isPresent()) { + throw new WebmateApiClientException("Could not get packages for project. Got no response"); + } + + List packages; try { - String packageJson = EntityUtils.toString(r.get().getEntity()); + String packagesJson = EntityUtils.toString(r.get().getEntity()); ObjectMapper pMapper = JacksonMapper.getInstance(); pMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - aPackage = pMapper.readValue(packageJson, Package.class); + packages = pMapper.readValue(packagesJson, new TypeReference>() {}); } catch (IOException e) { throw new WebmateApiClientException("Error reading Package data: " + e.getMessage(), e); } - return aPackage; + return packages; } public Package waitForPackage(PackageId packageId) { @@ -203,10 +218,20 @@ public Package updatePackage(PackageId packageId, BlobId blobId, String packageN * @param packageId Id of the package * @return Package information */ - public Package getPackage(PackageId packageId){ + public Package getPackage(PackageId packageId) { return this.apiClient.getPackage(packageId); } + /** + * Get all packages information for a given ProjectId. + * + * @param projectId Id of the project to get packages for + * @return List of Package information + */ + public Collection getPackagesForProject(ProjectId projectId) { + return this.apiClient.getPackagesForProject(projectId); + } + /** * Delete a package with a given PackageId *