aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2023-04-03 08:22:39 +0300
committerkaotisk <kaotisk@arching-kaos.org>2023-04-03 08:22:39 +0300
commit2f11539eef545fc0a9761693ae55e837b460beac (patch)
tree566e38f9aee9f0ffc3bc68877ed20767182492c7 /api
parent05ea0e3dca7209d1490658014c5e598e4d4dfdc4 (diff)
downloadarching-kaos-tools-2f11539eef545fc0a9761693ae55e837b460beac.tar.gz
arching-kaos-tools-2f11539eef545fc0a9761693ae55e837b460beac.tar.bz2
arching-kaos-tools-2f11539eef545fc0a9761693ae55e837b460beac.zip
Added ak-zblock-show with appropriate route in API with caching feature
Diffstat (limited to 'api')
-rw-r--r--api/routes/getZblock/index.js35
-rw-r--r--api/routes/index.js3
2 files changed, 38 insertions, 0 deletions
diff --git a/api/routes/getZblock/index.js b/api/routes/getZblock/index.js
new file mode 100644
index 0000000..af14ae3
--- /dev/null
+++ b/api/routes/getZblock/index.js
@@ -0,0 +1,35 @@
+const { spawn } = require('child_process');
+const fs = require("fs");
+const config = require("../../config");
+
+/*
+ * Gets the local latest zblock
+ *
+ * Returns:
+ * - JSON object
+ * { zlatest: "Qm..." }
+ *
+ */
+module.exports = (req, res) => {
+ const command = spawn("ak-zblock-cache",[req.query.zblock]);
+ command.stdout.on("data", data => {
+ });
+
+ command.stderr.on("data", data => {
+ console.log(`stderr: ${data}`);
+ });
+
+ command.on('error', (error) => {
+ console.log(`error: ${error.message}`);
+ });
+
+ command.on("close", code => {
+ console.log(`child process exited with code ${code}`);
+
+ if ( code == 0 ) {
+ res.send(JSON.parse(fs.readFileSync(config.zblockDir+"/"+req.query.zblock)));
+ } else {
+ res.send({"error":"error"});
+ }
+ });
+};
diff --git a/api/routes/index.js b/api/routes/index.js
index b771758..5842757 100644
--- a/api/routes/index.js
+++ b/api/routes/index.js
@@ -10,6 +10,7 @@ const getSBlock = require('./getSBlock');
const getZChain = require('./getZChain');
const receiveZBlock = require('./receiveZBlock');
const receiveZChain = require('./receiveZChain');
+const getZblock = require('./getZblock');
const corsOptions = {
origin: '*',
optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
@@ -34,6 +35,8 @@ router.route(settings.URL_PREFIX+'/sblock').get(getSBlock);
router.route(settings.URL_PREFIX+'/zchain').get(getZChain);
// Returns latest zblock from node's local chain
router.route(settings.URL_PREFIX+'/zlatest').get(getZLatest);
+// Returns zblock
+router.route(settings.URL_PREFIX+'/zblock').get(getZblock);
// Send a block to the node (zchain block)
router.route(settings.URL_PREFIX+'/sblk').post(receiveZBlock);
// Send a zchain link to the node (refering to a valid zchain out there)