diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2024-11-20 11:48:10 +0200 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2024-11-20 11:48:10 +0200 |
commit | 59afc2bc737f4c9edf32cc1ee05e81b99f0eeb2f (patch) | |
tree | 25582bbe1d97b22029c298207a455fda871026a4 /api/routes/getLeaf/index.js | |
parent | 4aa29c28f54704c3fdba9ba432916ad340447c61 (diff) | |
download | arching-kaos-tools-59afc2bc737f4c9edf32cc1ee05e81b99f0eeb2f.tar.gz arching-kaos-tools-59afc2bc737f4c9edf32cc1ee05e81b99f0eeb2f.tar.bz2 arching-kaos-tools-59afc2bc737f4c9edf32cc1ee05e81b99f0eeb2f.zip |
Implements the following routes to the API
- /leaf
- /chunk
- /map
Diffstat (limited to 'api/routes/getLeaf/index.js')
-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"})); + } +} + |