From ae9726f747b2ec3e5805d03ef04ad47cb7628315 Mon Sep 17 00:00:00 2001 From: kaotisk Date: Mon, 10 Jun 2024 05:08:59 +0300 Subject: Refactoring --- api/index.js | 37 ----------------------------- api/routes/announceZChain/index.js | 22 +---------------- api/routes/default/index.js | 5 ++-- api/routes/getNodeInfo/index.js | 11 +++++---- api/routes/getZblock/index.js | 48 ++++++++++++++++++-------------------- 5 files changed, 33 insertions(+), 90 deletions(-) diff --git a/api/index.js b/api/index.js index cb84d25..9bd064b 100755 --- a/api/index.js +++ b/api/index.js @@ -88,44 +88,7 @@ const routes = require('./routes'); //Routes.provideTheAppHere(app); app.use('/', routes); -/* - * After NS validation went through we examine the return code - * of the application that run the test. - * - * Returns: - * - error on failure - * - on success we process with addNSEntriesToFile() - * - */ -function continuethingsNS(validitycode,sh,res,gotit){ - if (validitycode === 0){ - var entry = { - zchain: sh, - latest: JSON.parse(gotit).Path.replace('/ipfs/','') - }; - addNSEntriesToFile(entry,res); - } else { - res.send({error:"Invalid data"}); - } -} -/* - * After validation went through we examine the return code - * of the application that run the test. - * - * Returns : - * - error on failure - * - on success we process with addEntriesToFile() - * - */ -function continuethings(exitcode,sh,res){ - if (exitcode === 0){ - var entry = {zblock:sh}; - addEntriesToFile(entry,res); - } else { - res.send({error:"Invalid data"}); - } -} /* * Adds a latest resolved IPFS path for a given IPNS link diff --git a/api/routes/announceZChain/index.js b/api/routes/announceZChain/index.js index 91ac5b9..a1b336c 100644 --- a/api/routes/announceZChain/index.js +++ b/api/routes/announceZChain/index.js @@ -1,23 +1,3 @@ -/* - * After NS validation went through we examine the return code - * of the application that run the test. - * - * Returns: - * - error on failure - * - on success we process with addNSEntriesToFile() - * - */ -function continuethingsNS(validitycode,sh,res,gotit){ - if (validitycode === 0){ - var entry = { - zchain: sh, - latest: JSON.parse(gotit).Path.replace('/ipfs/','') - }; - addNSEntriesToFile(entry,res); - } else { - res.send({error:"Invalid data"}); - } -} /* * Accepts a zchain * @@ -32,7 +12,7 @@ function continuethingsNS(validitycode,sh,res,gotit){ * function getNSvalidity() * */ -const getNSvalidity = require('../../validators/ZchainValidator') +const getNSvalidity = require('../../validators/ZchainValidator'); module.exports = (req, res) => { console.log(req); diff --git a/api/routes/default/index.js b/api/routes/default/index.js index 5bace64..19b069b 100644 --- a/api/routes/default/index.js +++ b/api/routes/default/index.js @@ -1,6 +1,7 @@ const settings = require('../../settings'); module.exports = (req, res) => { - res.send({ + res.writeHead(404, { 'Content-Type': 'application/json'}); + res.end(JSON.stringify({ message:"Hello! Welcome to Arching Kaos API! See available routes below!", routes:{ GET:[ @@ -21,6 +22,6 @@ module.exports = (req, res) => { {send_me_a_zblock:settings.DEF_PROTO+"["+settings.LOCAL_IP+"]:"+settings.PORT+settings.URL_PREFIX+"/announce/zblock"}, ] } - }); + })); } diff --git a/api/routes/getNodeInfo/index.js b/api/routes/getNodeInfo/index.js index 877b55a..d99382a 100644 --- a/api/routes/getNodeInfo/index.js +++ b/api/routes/getNodeInfo/index.js @@ -2,7 +2,7 @@ const { spawn } = require('child_process'); const akLogMessage = require('../../lib/akLogMessage'); module.exports = (req, res) => { - akLogMessage('INFO', `Incoming from [${req.socket._peername.address}]:${req.socket._peername.port} @ ${req.get('host')}${req._parsedOriginalUrl.pathname}`); + akLogMessage('INFO', `Incoming from [${req.connection.remoteAddress}]:${req.socket._peername.port} @ ${req.url}`); const command = spawn("ak-config", ["--get-published"]); var buffer = ""; command.stdout.on("data", data => { @@ -10,15 +10,16 @@ module.exports = (req, res) => { }); command.stderr.on("data", data => { - console.log(`stderr: ${data}`); + console.log(`stderr: ${data}`); }); command.on('error', (error) => { - console.log(`error: ${error.message}`); + console.log(`error: ${error.message}`); }); command.on("close", code => { - res.send(JSON.parse(buffer)); - console.log(`child process exited with code ${code}`); + res.writeHead(200, { 'Content-Type': 'application/json'}); + res.end(buffer); + console.log(`child process exited with code ${code}`); }); }; diff --git a/api/routes/getZblock/index.js b/api/routes/getZblock/index.js index 57acae1..9826c8b 100644 --- a/api/routes/getZblock/index.js +++ b/api/routes/getZblock/index.js @@ -3,27 +3,16 @@ const fs = require("fs"); const config = require("../../config"); /* - * Gets the local latest zblock + * Returns a cached zblock * * Returns: * - JSON object - * { zlatest: "Qm..." } * */ function fetchZblock(zblock, res){ regex= /Qm[A-Za-z0-9]{44}/; if (regex.test(zblock)){ const command = spawn("ak-zblock",["--cache",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.warn(`child process exited with code ${code}`); @@ -33,36 +22,45 @@ function fetchZblock(zblock, res){ console.log(path) try { if(fs.existsSync(path)){ - res.send(JSON.parse(fs.readFileSync(path))); + var buffer = fs.readFileSync(path); + res.writeHead(200, {'Content-Type': 'application/json'}); + res.end(JSON.stringify(JSON.parse(buffer))); } } catch (error) { - res.send({"error":error.message}); + res.writeHead(404, {'Content-Type': 'application/json'}); + res.end({"error":error.message}); } } else if ( code === 2){ - res.send({"error":"The roof is on fire"}); + res.writeHead(404, {'Content-Type': 'application/json'}); + res.end({"error":"The roof is on fire"}); } else { - res.send({"error":"invalid or unreachable"}); + res.writeHead(404, {'Content-Type': 'application/json'}); + res.end({"error":"invalid or unreachable"}); } }); } else { - res.send({error:"Invalid data: regexp failed to pass"}); + res.writeHead(404, {'Content-Type': 'application/json'}); + res.end(JSON.stringify({error:"Invalid data: regexp failed to pass"})); } }; module.exports = (req, res) => { - console.log(req.params) - if ( (req.params.zblock) && typeof req.params.zblock === "string" && req.params.zblock.length === 46 ){ + var args = req.url.split("/"); + if ( (args[2] === 'zblock') && args[3] && typeof args[3] === "string" && args[3].length === 46 ){ regex= /Qm[A-Za-z0-9]{44}/; - if (regex.test(req.params.zblock)){ - if (req.params.zblock === "QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH" ){ - res.send({error:"Genesis block"}); + if (regex.test(args[3])){ + if (args[3] === "QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH" ){ + res.writeHead(404, {'Content-Type': 'application/json'}); + res.end(JSON.stringify({error:"Genesis block"})); } else { - fetchZblock(req.params.zblock,res); + fetchZblock(args[3],res); } } else { - res.send({error:"Invalid data: regexp failed to pass"}); + res.writeHead(404, {'Content-Type': 'application/json'}); + res.end(JSON.stringify({error:"Invalid data: regexp failed to pass"})); } } else { - res.send({error:"Invalid data: no valid zblock was provided"}); + res.writeHead(404, {'Content-Type': 'application/json'}); + res.end(JSON.stringify({error:"Invalid data: no valid zblock was provided"})); } } -- cgit v1.2.3