From 2f11539eef545fc0a9761693ae55e837b460beac Mon Sep 17 00:00:00 2001 From: kaotisk Date: Mon, 3 Apr 2023 08:22:39 +0300 Subject: Added ak-zblock-show with appropriate route in API with caching feature --- api/routes/getZblock/index.js | 35 +++++++++++++++++++++++++++++++++++ api/routes/index.js | 3 +++ 2 files changed, 38 insertions(+) create mode 100644 api/routes/getZblock/index.js (limited to 'api') 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) -- cgit v1.2.3