Skip to content
This repository has been archived by the owner on Jul 29, 2021. It is now read-only.

Commit

Permalink
feat(management): allow to filter by context-path
Browse files Browse the repository at this point in the history
  • Loading branch information
phiz71 authored and ytvnr committed May 4, 2021
1 parent e8a9076 commit 8356aee
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 3 deletions.
12 changes: 10 additions & 2 deletions pom.xml
Expand Up @@ -32,8 +32,9 @@
<name>Gravitee.io APIM - Repository - JDBC</name>

<properties>
<gravitee-repository.version>3.5.2</gravitee-repository.version>
<gravitee-repository-test.version>3.5.3</gravitee-repository-test.version>
<gravitee-repository.version>3.5.3-SNAPSHOT</gravitee-repository.version>
<gravitee-repository-test.version>3.5.4-SNAPSHOT</gravitee-repository-test.version>
<gravitee-definition.version>1.25.0</gravitee-definition.version>
<maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
<HikariCP.version>3.4.1</HikariCP.version>
<liquibase.version>3.8.0</liquibase.version>
Expand All @@ -57,6 +58,13 @@
<scope>provided</scope>
</dependency>

<dependency>
<groupId>io.gravitee.definition</groupId>
<artifactId>gravitee-definition-jackson</artifactId>
<version>${gravitee-definition.version}</version>
<scope>provided</scope>
</dependency>

<!-- Runtime scope -->
<dependency>
<groupId>org.liquibase</groupId>
Expand Down
Expand Up @@ -15,7 +15,10 @@
*/
package io.gravitee.repository.jdbc.management;

import com.fasterxml.jackson.core.JsonProcessingException;
import io.gravitee.common.data.domain.Page;
import io.gravitee.definition.jackson.datatype.GraviteeMapper;
import io.gravitee.definition.model.VirtualHost;
import io.gravitee.repository.exceptions.TechnicalException;
import io.gravitee.repository.jdbc.orm.JdbcObjectMapper;
import io.gravitee.repository.management.api.ApiRepository;
Expand All @@ -34,6 +37,7 @@
import java.sql.ResultSet;
import java.sql.Types;
import java.util.*;
import java.util.stream.Collectors;

import static java.lang.String.format;
import static org.springframework.util.CollectionUtils.isEmpty;
Expand Down Expand Up @@ -311,7 +315,24 @@ private List<Api> findByCriteria(ApiCriteria apiCriteria, ApiFieldExclusionFilte
}
, rowMapper
);
final List<Api> apis = rowMapper.getRows();
List<Api> apis = rowMapper.getRows();

if (apiCriteria != null && apiCriteria.getContextPath() != null && ! apiCriteria.getContextPath().isEmpty()) {
apis = apis.stream()
.filter(apiMongo -> {
try {
io.gravitee.definition.model.Api apiDefinition = new GraviteeMapper().readValue(apiMongo.getDefinition(), io.gravitee.definition.model.Api.class);
VirtualHost searchedVHost = new VirtualHost();
searchedVHost.setPath(apiCriteria.getContextPath());
return apiDefinition.getProxy().getVirtualHosts().contains(searchedVHost);
} catch (JsonProcessingException e) {
LOGGER.error("Problem occured while parsing api definition", e);
return false;
}
})
.collect(Collectors.toList());
}

for (final Api api : apis) {
addLabels(api);
addGroups(api);
Expand Down

0 comments on commit 8356aee

Please sign in to comment.