diff --git a/cesium-plus-pod-assembly/pom.xml b/cesium-plus-pod-assembly/pom.xml index e1aedde99a3fbaa52a3338835bed36bb0a290a11..65942c530e96b0100b4b36718a7fc41f1c3e7774 100644 --- a/cesium-plus-pod-assembly/pom.xml +++ b/cesium-plus-pod-assembly/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>org.duniter.cesium</groupId> <artifactId>cesium-plus-pod</artifactId> - <version>1.10.8</version> + <version>1.11.0</version> </parent> <artifactId>cesium-plus-pod-assembly</artifactId> diff --git a/cesium-plus-pod-client/pom.xml b/cesium-plus-pod-client/pom.xml index 2b031873ed4a05d732f8aa255a4376c75cd53244..6a28abf73ea5febc6dbc6bf8844ef6ccecf38eda 100644 --- a/cesium-plus-pod-client/pom.xml +++ b/cesium-plus-pod-client/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>org.duniter.cesium</groupId> <artifactId>cesium-plus-pod</artifactId> - <version>1.10.8</version> + <version>1.11.0</version> </parent> <artifactId>cesium-plus-pod-client</artifactId> diff --git a/cesium-plus-pod-core/pom.xml b/cesium-plus-pod-core/pom.xml index 3d473e4327d41c2f09ff6a3e27a2bc3508da6b87..0e8b72e8b3b8a46075bb51a3f41425eeff231936 100644 --- a/cesium-plus-pod-core/pom.xml +++ b/cesium-plus-pod-core/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>org.duniter.cesium</groupId> <artifactId>cesium-plus-pod</artifactId> - <version>1.10.8</version> + <version>1.11.0</version> </parent> <artifactId>cesium-plus-pod-core</artifactId> diff --git a/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/rest/wot/RestWotRequirementsGetAction.java b/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/rest/wot/RestWotRequirementsGetAction.java index 51efb1c2e612aa10cb08f3c1216ce229ad6bd75a..92a05a809bde44c735af65a9b24fc59bb8ca9520 100644 --- a/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/rest/wot/RestWotRequirementsGetAction.java +++ b/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/rest/wot/RestWotRequirementsGetAction.java @@ -69,7 +69,7 @@ public class RestWotRequirementsGetAction extends BaseRestHandler { String pubkey = request.param("pubkey"); try { - List<WotRequirements> requirements = wotService.getRequirements(currency, pubkey); + List<WotRequirements> requirements = wotService.getRequirementsByPubkey(currency, pubkey); if (requirements == null) { XContentBuilder builder = RestXContentBuilder.restContentBuilder(request).startObject() .field("ucode", 2021) diff --git a/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/PendingMembershipService.java b/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/PendingMembershipService.java index 0ea46a7fa6fa0f4eed133099545e696840ae3305..118f4c1790733cea2a17d9683c9dc228a1afe5fa 100644 --- a/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/PendingMembershipService.java +++ b/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/PendingMembershipService.java @@ -272,7 +272,7 @@ public class PendingMembershipService extends AbstractService { do { try { - identities = wotRemoteService.getRequirements(peer, membership.getPubkey()); + identities = wotRemoteService.getRequirementsByPubkey(peer, membership.getPubkey()); requestCounter.increment(); } // Error can occur because of quota on BMA api diff --git a/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/WotService.java b/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/WotService.java index cb31fbd0b1a07b1e77c417ff9efd6ac7f081a10b..eec343fbc64e8121c8cf9784f588ab898c1a58ae 100644 --- a/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/WotService.java +++ b/cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/WotService.java @@ -263,10 +263,16 @@ public class WotService extends AbstractService { return response.getHits() != null && response.getHits().getTotalHits() > 0; } - public List<WotRequirements> getRequirements(String currency, String pubkey) { + public List<WotRequirements> getRequirements(String currency, String uidOrPubkey) { waitReady(); final String currencyId = safeGetCurrency(currency); - return this.wotRemoteService.getRequirements(currencyId, pubkey); + return this.wotRemoteService.getRequirements(currencyId, uidOrPubkey); + } + + public List<WotRequirements> getRequirementsByPubkey(String currency, String pubkey) { + waitReady(); + final String currencyId = safeGetCurrency(currency); + return this.wotRemoteService.getRequirementsByPubkey(currencyId, pubkey); } public Optional<Member> getMemberByPubkey(String currency, String pubkey) { @@ -277,19 +283,25 @@ public class WotService extends AbstractService { } // Fallback to remote duniter node (e.g. Blockchain not yet indexed) else { - Identity source = this.wotRemoteService.getIdentity(currencyId, pubkey); - if (source == null - || !currencyId.equals(source.getCurrency()) - || (!source.getIsMember() && source.getWasMember())) return Optional.empty(); // Not a member - - Member target = new Member(); - target.setPubkey(pubkey); - target.setCurrency(currencyId); - target.setUid(source.getUid()); - target.setIsMember(source.getIsMember()); - target.setWasMember(source.getWasMember()); - target.setTimestamp(source.getTimestamp()); - return Optional.of(target); + return this.wotRemoteService.getRequirementsByPubkey(currencyId, pubkey) + .stream() + .map(source -> { + Member target = new Member(); + target.setPubkey(pubkey); + target.setCurrency(currencyId); + target.setUid(source.getUid()); + target.setWasMember(source.getWasMember()); + Boolean isMember = Boolean.FALSE.equals(source.getRevoked()) + && source.getMembershipExpiresIn() != null + && source.getMembershipExpiresIn() > 0; + target.setIsMember(isMember); + if (source.getMeta() != null) { + target.setTimestamp(source.getMeta().getTimestamp()); + } + return target; + }) + .filter(source -> Boolean.TRUE.equals(source.getWasMember()) || source.getIsMember()) + .findFirst(); } } diff --git a/cesium-plus-pod-model/pom.xml b/cesium-plus-pod-model/pom.xml index 6fe640416286494b5e93e2782fffe22817ef667a..a43af8c9cc9e780b02cf043d94f72c1433e8be12 100644 --- a/cesium-plus-pod-model/pom.xml +++ b/cesium-plus-pod-model/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>org.duniter.cesium</groupId> <artifactId>cesium-plus-pod</artifactId> - <version>1.10.8</version> + <version>1.11.0</version> </parent> <artifactId>cesium-plus-pod-model</artifactId> diff --git a/cesium-plus-pod-subscription/pom.xml b/cesium-plus-pod-subscription/pom.xml index 7a212a3487d7ad18bec1e047ac42df19375e6eb3..1ccd368573f8e5f1a4fa4f1b9f0acdd258a00a21 100644 --- a/cesium-plus-pod-subscription/pom.xml +++ b/cesium-plus-pod-subscription/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>org.duniter.cesium</groupId> <artifactId>cesium-plus-pod</artifactId> - <version>1.10.8</version> + <version>1.11.0</version> </parent> <artifactId>cesium-plus-pod-subscription</artifactId> diff --git a/cesium-plus-pod-test/pom.xml b/cesium-plus-pod-test/pom.xml index 4d672e6384be7b950b1948edeec894850d4a3007..be8c33998e97f4d6b2f0f249a3b3f54b9b906094 100644 --- a/cesium-plus-pod-test/pom.xml +++ b/cesium-plus-pod-test/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.duniter.cesium</groupId> <artifactId>cesium-plus-pod</artifactId> - <version>1.10.8</version> + <version>1.11.0</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/cesium-plus-pod-user/pom.xml b/cesium-plus-pod-user/pom.xml index e72357eed03d7610067eacf50a027563fb7a8539..0cda07ba95dcd258e610673322b1acdf29be142d 100644 --- a/cesium-plus-pod-user/pom.xml +++ b/cesium-plus-pod-user/pom.xml @@ -3,7 +3,7 @@ <parent> <artifactId>cesium-plus-pod</artifactId> <groupId>org.duniter.cesium</groupId> - <version>1.10.8</version> + <version>1.11.0</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/pom.xml b/pom.xml index 74e31d98d723ce8d94b4881a3b23a8ff3db0b337..8fefcd7901bc605406d7441621dd3298f85c5e0f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <groupId>org.duniter.cesium</groupId> <artifactId>cesium-plus-pod</artifactId> - <version>1.10.8</version> + <version>1.11.0</version> <packaging>pom</packaging> <name>Cesium+ pod</name> <description>Cesium+ pod :: An ElasticSearch cluster for Duniter network</description> @@ -28,7 +28,7 @@ <javaVersion>11</javaVersion> <!-- Commons versions --> - <duniter4j.version>1.5.10</duniter4j.version> + <duniter4j.version>1.6.1</duniter4j.version> <log4j.version>1.2.17</log4j.version> <slf4j.version>1.7.6</slf4j.version> <guava.version>22.0</guava.version>