Skip to content

Commit

Permalink
feat: rework export service
Browse files Browse the repository at this point in the history
APIM-8200
  • Loading branch information
michel-barret committed Jan 28, 2025
1 parent 4fda059 commit e81241c
Show file tree
Hide file tree
Showing 34 changed files with 1,078 additions and 260 deletions.
2 changes: 1 addition & 1 deletion gravitee-apim-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -736,4 +736,4 @@

</dependencies>
</dependencyManagement>
</project>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
import io.gravitee.definition.model.v4.flow.step.Step;
import jakarta.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
Expand Down Expand Up @@ -55,9 +55,12 @@ public abstract class AbstractFlow implements Serializable {

@JsonIgnore
protected List<Plugin> computePlugins(List<Step> step) {
return Optional
return Stream
.ofNullable(step)
.map(r -> r.stream().filter(Step::isEnabled).map(Step::getPlugins).flatMap(List::stream).collect(Collectors.toList()))
.orElse(List.of());
.flatMap(Collection::stream)
.filter(Step::isEnabled)
.map(Step::getPlugins)
.flatMap(List::stream)
.toList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ public interface MembershipRepository extends FindAllRepository<Membership> {
*/
List<String> deleteByReferenceIdAndReferenceType(String referenceId, MembershipReferenceType referenceType) throws TechnicalException;

List<Membership> findByReferenceIdAndReferenceType(String referenceId, MembershipReferenceType referenceType) throws TechnicalException;

/**
* find membership by id.
* @param membershipId the membership id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@ public List<String> deleteByReferenceIdAndReferenceType(String referenceId, Memb
LOGGER.debug("JdbcMembershipRepository.deleteByReferenceIdAndReferenceType({}, {})", referenceId, referenceType);
try {
List<String> rows = jdbcTemplate.queryForList(
"select id from " + this.tableName + " where reference_type = ?" + " and reference_id = ?",
"select id from " + this.tableName + " where reference_type = ? and reference_id = ?",
String.class,
referenceType.name(),
referenceId
);

if (!rows.isEmpty()) {
jdbcTemplate.update(
"delete from " + this.tableName + " where reference_type = ?" + " and reference_id = ?",
"delete from " + this.tableName + " where reference_type = ? and reference_id = ?",
referenceType.name(),
referenceId
);
Expand All @@ -98,6 +98,21 @@ public List<String> deleteByReferenceIdAndReferenceType(String referenceId, Memb
}
}

@Override
public List<Membership> findByReferenceIdAndReferenceType(String referenceId, MembershipReferenceType referenceType)
throws TechnicalException {
LOGGER.debug("JdbcMembershipRepository.findByReferenceIdAndReferenceType({}, {})", referenceId, referenceType);
try {
return jdbcTemplate.query(
getOrm().getSelectAllSql() + " where reference_type = " + referenceType.name() + " and reference_id = " + referenceId,
getOrm().getRowMapper()
);
} catch (final Exception ex) {
LOGGER.error("Failed to find memberships for refId: {}/{}", referenceId, referenceType, ex);
throw new TechnicalException("Failed to find memberships by reference", ex);
}
}

@Override
public Set<Membership> findByIds(Set<String> membershipIds) throws TechnicalException {
LOGGER.debug("JdbcMembershipRepository.findByIds({})", membershipIds);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
*/
package io.gravitee.repository.mongodb.management;

import static io.gravitee.repository.mongodb.utils.CollectionUtils.stream;

import io.gravitee.repository.exceptions.TechnicalException;
import io.gravitee.repository.management.api.MembershipRepository;
import io.gravitee.repository.management.model.Membership;
Expand Down Expand Up @@ -117,6 +119,18 @@ public List<String> deleteByReferenceIdAndReferenceType(String referenceId, Memb
}
}

@Override
public List<Membership> findByReferenceIdAndReferenceType(String referenceId, MembershipReferenceType referenceType)
throws TechnicalException {
logger.debug("Find memberships by reference [{}/{}]", referenceId, referenceType);
try {
return stream(internalMembershipRepo.findByMemberIdAndMemberType(referenceId, referenceType.name())).map(this::map).toList();
} catch (Exception ex) {
logger.error("Failed to find memberships by ref: {}/{}", referenceId, referenceType, ex);
throw new TechnicalException("Failed to find memberships by ref");
}
}

@Override
public Optional<Membership> findById(String membershipId) throws TechnicalException {
logger.debug("Find membership by ID [{}]", membershipId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This repository is used to ensure repository test coverage and to provide a mini

The minimum requirement is :
* Maven3
* Jdk8
* Jdk21

For user gravitee snapshot, You need the declare the following repository in you maven settings :

Expand All @@ -19,7 +19,7 @@ https://oss.sonatype.org/content/repositories/snapshots

```
$ git clone https://github.com/gravitee-io/gravitee-repository-test.git
$ cd gravitee-repository-test
$ cd gravitee-apim-repository/gravitee-apim-repository-test
$ mvn clean package
```

Expand Down
Loading

0 comments on commit e81241c

Please sign in to comment.