forked from Qortal/qortal
Added same functionality to GET /blocks/signature/{signature}
Also renamed query string parameter to "includeOnlineSignatures" to make it clearer.
This commit is contained in:
parent
3a7da9f13b
commit
391c3fe4c9
@ -75,7 +75,8 @@ public class BlocksResource {
|
|||||||
@ApiErrors({
|
@ApiErrors({
|
||||||
ApiError.INVALID_SIGNATURE, ApiError.BLOCK_UNKNOWN, ApiError.REPOSITORY_ISSUE
|
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
|
// Decode signature
|
||||||
byte[] signature;
|
byte[] signature;
|
||||||
try {
|
try {
|
||||||
@ -88,12 +89,18 @@ public class BlocksResource {
|
|||||||
// Check the database first
|
// Check the database first
|
||||||
BlockData blockData = repository.getBlockRepository().fromSignature(signature);
|
BlockData blockData = repository.getBlockRepository().fromSignature(signature);
|
||||||
if (blockData != null) {
|
if (blockData != null) {
|
||||||
|
if (includeOnlineSignatures == null || includeOnlineSignatures == false) {
|
||||||
|
blockData.setOnlineAccountsSignatures(null);
|
||||||
|
}
|
||||||
return blockData;
|
return blockData;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not found, so try the block archive
|
// Not found, so try the block archive
|
||||||
blockData = repository.getBlockArchiveRepository().fromSignature(signature);
|
blockData = repository.getBlockArchiveRepository().fromSignature(signature);
|
||||||
if (blockData != null) {
|
if (blockData != null) {
|
||||||
|
if (includeOnlineSignatures == null || includeOnlineSignatures == false) {
|
||||||
|
blockData.setOnlineAccountsSignatures(null);
|
||||||
|
}
|
||||||
return blockData;
|
return blockData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,12 +431,12 @@ public class BlocksResource {
|
|||||||
ApiError.BLOCK_UNKNOWN, ApiError.REPOSITORY_ISSUE
|
ApiError.BLOCK_UNKNOWN, ApiError.REPOSITORY_ISSUE
|
||||||
})
|
})
|
||||||
public BlockData getByHeight(@PathParam("height") int height,
|
public BlockData getByHeight(@PathParam("height") int height,
|
||||||
@QueryParam("includesignatures") Boolean includeSignatures) {
|
@QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) {
|
||||||
try (final Repository repository = RepositoryManager.getRepository()) {
|
try (final Repository repository = RepositoryManager.getRepository()) {
|
||||||
// Firstly check the database
|
// Firstly check the database
|
||||||
BlockData blockData = repository.getBlockRepository().fromHeight(height);
|
BlockData blockData = repository.getBlockRepository().fromHeight(height);
|
||||||
if (blockData != null) {
|
if (blockData != null) {
|
||||||
if (includeSignatures == null || includeSignatures == false) {
|
if (includeOnlineSignatures == null || includeOnlineSignatures == false) {
|
||||||
blockData.setOnlineAccountsSignatures(null);
|
blockData.setOnlineAccountsSignatures(null);
|
||||||
}
|
}
|
||||||
return blockData;
|
return blockData;
|
||||||
@ -438,7 +445,7 @@ public class BlocksResource {
|
|||||||
// Not found, so try the archive
|
// Not found, so try the archive
|
||||||
blockData = repository.getBlockArchiveRepository().fromHeight(height);
|
blockData = repository.getBlockArchiveRepository().fromHeight(height);
|
||||||
if (blockData != null) {
|
if (blockData != null) {
|
||||||
if (includeSignatures == null || includeSignatures == false) {
|
if (includeOnlineSignatures == null || includeOnlineSignatures == false) {
|
||||||
blockData.setOnlineAccountsSignatures(null);
|
blockData.setOnlineAccountsSignatures(null);
|
||||||
}
|
}
|
||||||
return blockData;
|
return blockData;
|
||||||
|
@ -40,7 +40,7 @@ public class BlockApiTests extends ApiCommon {
|
|||||||
byte[] signatureBytes = GenesisBlock.getInstance(repository).getSignature();
|
byte[] signatureBytes = GenesisBlock.getInstance(repository).getSignature();
|
||||||
String signature = Base58.encode(signatureBytes);
|
String signature = Base58.encode(signatureBytes);
|
||||||
|
|
||||||
assertNotNull(this.blocksResource.getBlock(signature));
|
assertNotNull(this.blocksResource.getBlock(signature, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user