Added "FETCH_BLOCK" and "FETCH_BLOCK_RANGE" Q-Apps actions.

This commit is contained in:
CalDescent
2023-01-19 20:05:46 +00:00
parent 03a54691a1
commit ca80fd5f9c
3 changed files with 75 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ import org.qortal.data.account.AccountData;
import org.qortal.data.arbitrary.ArbitraryResourceInfo;
import org.qortal.data.arbitrary.ArbitraryResourceStatus;
import org.qortal.data.at.ATData;
import org.qortal.data.block.BlockData;
import org.qortal.data.chat.ChatMessage;
import org.qortal.data.group.GroupData;
import org.qortal.data.naming.NameData;
@@ -179,6 +180,30 @@ public class AppsResource {
return atResource.getByFunctionality(codeHash58, isExecutable, limit, offset, reverse);
}
@GET
@Path("/block")
@Hidden // For internal Q-App API use only
public BlockData fetchBlockByHeight(@QueryParam("signature") String signature58, @QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) {
BlocksResource blocksResource = (BlocksResource) buildResource(BlocksResource.class, request, response, context);
return blocksResource.getBlock(signature58, includeOnlineSignatures);
}
@GET
@Path("/block/byheight")
@Hidden // For internal Q-App API use only
public BlockData fetchBlockByHeight(@QueryParam("height") int height, @QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) {
BlocksResource blocksResource = (BlocksResource) buildResource(BlocksResource.class, request, response, context);
return blocksResource.getByHeight(height, includeOnlineSignatures);
}
@GET
@Path("/block/range")
@Hidden // For internal Q-App API use only
public List<BlockData> getBlockRange(@QueryParam("height") int height, @Parameter(ref = "count") @QueryParam("count") int count, @Parameter(ref = "reverse") @QueryParam("reverse") Boolean reverse, @QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) {
BlocksResource blocksResource = (BlocksResource) buildResource(BlocksResource.class, request, response, context);
return blocksResource.getBlockRange(height, count, reverse, includeOnlineSignatures);
}
public static Object buildResource(Class<?> resourceClass, HttpServletRequest request, HttpServletResponse response, ServletContext context) {
try {

View File

@@ -155,6 +155,28 @@ window.addEventListener("message", (event) => {
response = httpGet(url);
break;
case "FETCH_BLOCK":
if (data.signature != null) {
url = "/apps/block?";
url = url.concat("&signature=" + data.signature);
}
else if (data.height != null) {
url = "/apps/block/byheight?";
url = url.concat("&height=" + data.height);
}
if (data.includeOnlineSignatures != null) url = url.concat("&includeOnlineSignatures=" + data.includeOnlineSignatures);
response = httpGet(url);
break;
case "FETCH_BLOCK_RANGE":
url = "/apps/block/range?";
if (data.height != null) url = url.concat("&height=" + data.height);
if (data.count != null) url = url.concat("&count=" + data.count);
if (data.reverse != null) url = url.concat("&reverse=" + data.reverse);
if (data.includeOnlineSignatures != null) url = url.concat("&includeOnlineSignatures=" + data.includeOnlineSignatures);
response = httpGet(url);
break;
default:
// Pass to parent (UI), in case they can fulfil this request
event.data.requestedHandler = "UI";