aboutsummaryrefslogtreecommitdiff
path: root/api/routes/getLeaf
diff options
context:
space:
mode:
Diffstat (limited to 'api/routes/getLeaf')
-rw-r--r--api/routes/getLeaf/index.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/api/routes/getLeaf/index.js b/api/routes/getLeaf/index.js
new file mode 100644
index 0000000..593d52a
--- /dev/null
+++ b/api/routes/getLeaf/index.js
@@ -0,0 +1,35 @@
+/*
+ * Receives an SHA512SUM as a leaf's hash and if exists it
+ * returns the leaf's content
+ *
+ */
+
+const fs = require('fs');
+const config = require("../../config.js");
+
+module.exports = (req, res) => {
+ var args = req.url.split("/");
+ var hash = args[3];
+ regex= /[a-f0-9]{128}/
+ if (regex.test(hash))
+ {
+ var path = config.leafsDir+"/"+hash;
+ try
+ {
+ if(fs.existsSync(path))
+ {
+ res.send(fs.readFileSync(path));
+ }
+ }
+ catch (error)
+ {
+ res.send({"error":error.message});
+ }
+ }
+ else
+ {
+ res.writeHead(404, {'Content-Type': 'application/json'});
+ res.end(JSON.stringify({error:"No hash"}));
+ }
+}
+