From 59afc2bc737f4c9edf32cc1ee05e81b99f0eeb2f Mon Sep 17 00:00:00 2001 From: kaotisk Date: Wed, 20 Nov 2024 11:48:10 +0200 Subject: Implements the following routes to the API - /leaf - /chunk - /map --- api/routes/getChunk/index.js | 35 +++++++++++++++++++++++++++++++++++ api/routes/getLeaf/index.js | 35 +++++++++++++++++++++++++++++++++++ api/routes/getMap/index.js | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 api/routes/getChunk/index.js create mode 100644 api/routes/getLeaf/index.js create mode 100644 api/routes/getMap/index.js diff --git a/api/routes/getChunk/index.js b/api/routes/getChunk/index.js new file mode 100644 index 0000000..d848ce9 --- /dev/null +++ b/api/routes/getChunk/index.js @@ -0,0 +1,35 @@ +/* + * Receives an SHA512SUM as a chunk's hash and if exists it + * returns the chunk'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.chunksDir+"/"+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"})); + } +} + 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"})); + } +} + diff --git a/api/routes/getMap/index.js b/api/routes/getMap/index.js new file mode 100644 index 0000000..fa834ab --- /dev/null +++ b/api/routes/getMap/index.js @@ -0,0 +1,35 @@ +/* + * Receives an SHA512SUM as a map's hash and if exists it + * returns the map'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.mapsDir+"/"+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"})); + } +} + -- cgit v1.2.3