aboutsummaryrefslogtreecommitdiff
path: root/api/routes/getInnerIPFSContent
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2023-04-10 15:49:11 +0300
committerkaotisk <kaotisk@arching-kaos.org>2023-04-10 15:49:11 +0300
commit02451920cffb8314656b42bb6f7dc9c8e97f366e (patch)
tree77eafb12b592b6e48282b6405712e6e132727c44 /api/routes/getInnerIPFSContent
parent5cafa276f4a243740113c5c813fab04918fa5c96 (diff)
downloadarching-kaos-tools-02451920cffb8314656b42bb6f7dc9c8e97f366e.tar.gz
arching-kaos-tools-02451920cffb8314656b42bb6f7dc9c8e97f366e.tar.bz2
arching-kaos-tools-02451920cffb8314656b42bb6f7dc9c8e97f366e.zip
New API route to fetch content from IPFS hashes that is cached in the filesystem
Diffstat (limited to 'api/routes/getInnerIPFSContent')
-rw-r--r--api/routes/getInnerIPFSContent/index.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/api/routes/getInnerIPFSContent/index.js b/api/routes/getInnerIPFSContent/index.js
new file mode 100644
index 0000000..555d2a3
--- /dev/null
+++ b/api/routes/getInnerIPFSContent/index.js
@@ -0,0 +1,32 @@
+const { spawn } = require('child_process');
+const fs = require("fs");
+const config = require("../../config");
+
+/*
+ * Gets the local latest zblock
+ *
+ * Returns:
+ * - JSON object
+ * { zlatest: "Qm..." }
+ *
+ */
+function fetchZblock(zblock, res){
+ res.send(fs.readFileSync(config.workDir+"/ipfs/"+zblock));
+};
+module.exports = (req, res) => {
+ console.log(req.query)
+ if ( (req.query.ipfs) && req.query.ipfs.length === 46 ){
+ regex= /Qm[A-Za-z0-9]{44}/;
+ if (regex.test(req.query.ipfs)){
+ if (req.query.ipfs === "QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH" ){
+ res.send({errno:"Genesis block"});
+ } else {
+ fetchZblock(req.query.ipfs,res);
+ }
+ } else {
+ res.send({errno:"Invalid data: regexp failed to pass"});
+ }
+ } else {
+ res.send({errno:"Invalid data: no valid zblock was provided"});
+ }
+}