diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2023-04-03 08:22:39 +0300 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2023-04-03 08:22:39 +0300 |
commit | 2f11539eef545fc0a9761693ae55e837b460beac (patch) | |
tree | 566e38f9aee9f0ffc3bc68877ed20767182492c7 /api | |
parent | 05ea0e3dca7209d1490658014c5e598e4d4dfdc4 (diff) | |
download | arching-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.js | 35 | ||||
-rw-r--r-- | api/routes/index.js | 3 |
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) |