diff options
Diffstat (limited to 'api/routes/getLeaf')
-rw-r--r-- | api/routes/getLeaf/index.js | 35 |
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"})); + } +} + |