aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rwxr-xr-xapi/index.js37
-rw-r--r--api/routes/announceZChain/index.js22
-rw-r--r--api/routes/default/index.js5
-rw-r--r--api/routes/getNodeInfo/index.js11
-rw-r--r--api/routes/getZblock/index.js48
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,24 +1,4 @@
/*
- * 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
*
* Checks:
@@ -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"}));
}
}