From 02451920cffb8314656b42bb6f7dc9c8e97f366e Mon Sep 17 00:00:00 2001 From: kaotisk Date: Mon, 10 Apr 2023 15:49:11 +0300 Subject: New API route to fetch content from IPFS hashes that is cached in the filesystem --- api/routes/getInnerIPFSContent/index.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 api/routes/getInnerIPFSContent/index.js (limited to 'api/routes/getInnerIPFSContent') 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"}); + } +} -- cgit v1.2.3