diff --git a/docker-compose.yml b/docker-compose.yml index 79679e18671c058fb8cf929614554eea16cbc38f..1d205286bd0cbc28c00819ed132212c8a09afde4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,7 +79,7 @@ services: - mariadb - keycloak foundationdb: - image: eclipsefdn/foundationdb-api:staging-cf0112a-13 + image: eclipsefdn/foundationdb-api:staging-c329279-21 ports: - '8095:8095' environment: diff --git a/portal/src/main/java/org/eclipsefoundation/api/ComplexAPI.java b/portal/src/main/java/org/eclipsefoundation/api/ComplexAPI.java index 7877a24e7f727e92579d4518a60e1e124f9c768e..b1d235fe3387a840b903943ffc51ba972feb8f3c 100644 --- a/portal/src/main/java/org/eclipsefoundation/api/ComplexAPI.java +++ b/portal/src/main/java/org/eclipsefoundation/api/ComplexAPI.java @@ -1,5 +1,7 @@ package org.eclipsefoundation.api; +import java.util.List; + import javax.ws.rs.BeanParam; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -24,5 +26,5 @@ public interface ComplexAPI { @GET @Path("members") - public MemberOrganizationsData getMember(@QueryParam("id") String id); + public List getMember(@QueryParam("id") String id); } diff --git a/portal/src/main/java/org/eclipsefoundation/membership/portal/service/impl/FoundationDBOrganizationService.java b/portal/src/main/java/org/eclipsefoundation/membership/portal/service/impl/FoundationDBOrganizationService.java index 6fc1387d5964bc088f3378b9ae929f173f79ca65..949ca6b8334e4ab8b12029580ead9f4bed9736ca 100644 --- a/portal/src/main/java/org/eclipsefoundation/membership/portal/service/impl/FoundationDBOrganizationService.java +++ b/portal/src/main/java/org/eclipsefoundation/membership/portal/service/impl/FoundationDBOrganizationService.java @@ -172,7 +172,8 @@ public class FoundationDBOrganizationService implements OrganizationsService { int pageMaxApprox = (int) Math.ceil(maxResults / maxPageSize); for (int i = 2; i < pageMaxApprox; i++) { wrap.setParam(DefaultUrlParameterNames.PAGE, Integer.toString(i)); - LOGGER.debug("Generating HA cache for organizations data: {}", BaseAPIParameters.buildFromWrapper(wrap)); + LOGGER.debug("Generating HA cache for organizations data: {}", + BaseAPIParameters.buildFromWrapper(wrap)); loadingCache.get( BaseAPIParameters.builder().setLimit(maxPageSize).setPage(i).setRequestWrapper(wrap).build()); } @@ -237,8 +238,13 @@ public class FoundationDBOrganizationService implements OrganizationsService { @Override public Optional getByID(String id) { try { - return cache.get(id, new MultivaluedMapImpl<>(), MemberOrganization.class, - () -> convertToMemberOrganization(complexAPI.getMember(id))); + return cache.get(id, new MultivaluedMapImpl<>(), MemberOrganization.class, () -> { + List orgs = complexAPI.getMember(id); + if (orgs.isEmpty()) { + return null; + } + return convertToMemberOrganization(orgs.get(0)); + }); } catch (Exception e) { LOGGER.error("Error retrieving member organization: ", e); }