From 391c3fe4c9da8cc28e2dd97fbfd78119bf416c04 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 15 Dec 2021 16:37:59 +0000 Subject: [PATCH] Added same functionality to GET /blocks/signature/{signature} Also renamed query string parameter to "includeOnlineSignatures" to make it clearer. --- .../org/qortal/api/resource/BlocksResource.java | 15 +++++++++++---- .../java/org/qortal/test/api/BlockApiTests.java | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/qortal/api/resource/BlocksResource.java b/src/main/java/org/qortal/api/resource/BlocksResource.java index 1ba5ab3c..bcd531d4 100644 --- a/src/main/java/org/qortal/api/resource/BlocksResource.java +++ b/src/main/java/org/qortal/api/resource/BlocksResource.java @@ -75,7 +75,8 @@ public class BlocksResource { @ApiErrors({ ApiError.INVALID_SIGNATURE, ApiError.BLOCK_UNKNOWN, ApiError.REPOSITORY_ISSUE }) - public BlockData getBlock(@PathParam("signature") String signature58) { + public BlockData getBlock(@PathParam("signature") String signature58, + @QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) { // Decode signature byte[] signature; try { @@ -88,12 +89,18 @@ public class BlocksResource { // Check the database first BlockData blockData = repository.getBlockRepository().fromSignature(signature); if (blockData != null) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { + blockData.setOnlineAccountsSignatures(null); + } return blockData; } // Not found, so try the block archive blockData = repository.getBlockArchiveRepository().fromSignature(signature); if (blockData != null) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { + blockData.setOnlineAccountsSignatures(null); + } return blockData; } @@ -424,12 +431,12 @@ public class BlocksResource { ApiError.BLOCK_UNKNOWN, ApiError.REPOSITORY_ISSUE }) public BlockData getByHeight(@PathParam("height") int height, - @QueryParam("includesignatures") Boolean includeSignatures) { + @QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) { try (final Repository repository = RepositoryManager.getRepository()) { // Firstly check the database BlockData blockData = repository.getBlockRepository().fromHeight(height); if (blockData != null) { - if (includeSignatures == null || includeSignatures == false) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { blockData.setOnlineAccountsSignatures(null); } return blockData; @@ -438,7 +445,7 @@ public class BlocksResource { // Not found, so try the archive blockData = repository.getBlockArchiveRepository().fromHeight(height); if (blockData != null) { - if (includeSignatures == null || includeSignatures == false) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { blockData.setOnlineAccountsSignatures(null); } return blockData; diff --git a/src/test/java/org/qortal/test/api/BlockApiTests.java b/src/test/java/org/qortal/test/api/BlockApiTests.java index 79d87a1d..6415880a 100644 --- a/src/test/java/org/qortal/test/api/BlockApiTests.java +++ b/src/test/java/org/qortal/test/api/BlockApiTests.java @@ -40,7 +40,7 @@ public class BlockApiTests extends ApiCommon { byte[] signatureBytes = GenesisBlock.getInstance(repository).getSignature(); String signature = Base58.encode(signatureBytes); - assertNotNull(this.blocksResource.getBlock(signature)); + assertNotNull(this.blocksResource.getBlock(signature, true)); } }