aboutsummaryrefslogtreecommitdiff
path: root/modules/scandir.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-06-04 08:51:01 +0200
committerMinteck <contact@minteck.org>2022-06-04 08:51:01 +0200
commit383285ecd5292bf9a825e05904955b937de84cc9 (patch)
tree0a53b6f02c1604b078044567c03dc1b6c944c8c2 /modules/scandir.js
downloadequestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.gz
equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.bz2
equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.zip
Initial commit
Diffstat (limited to 'modules/scandir.js')
-rw-r--r--modules/scandir.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/scandir.js b/modules/scandir.js
new file mode 100644
index 0000000..ebd5e32
--- /dev/null
+++ b/modules/scandir.js
@@ -0,0 +1,49 @@
+const body = require("body/json");
+const crypto = require('crypto');
+const fs = require('fs');
+
+module.exports = (req, res, entry, dbid) => {
+ res.writeHead(200, {'Content-Type':'application/json'});
+ body(req, res, variables.bodyOptions, (err, body) => {
+ try {
+ if (err) throw err;
+ console.log(body);
+ if (typeof body.path === "string") {
+ let contents = [];
+
+ let search;
+ if (body.path.endsWith("/")) {
+ search = body.path;
+ } else {
+ search = body.path + "/";
+ }
+
+ for (let item of Object.keys(heads[entry])) {
+ if (item.startsWith(search)) {
+ contents.push(item.substring(search.length).split("/")[0]);
+ }
+ }
+
+ res.write(JSON.stringify({
+ "_internal": {
+ "database": entry,
+ "node": null,
+ "path": null
+ },
+ "error": 200,
+ "data": [...new Set(contents)]
+ }));
+ res.end();
+ } else {
+ res.writeHead(400, {'Content-Type':'application/json'});
+ res.write("{\"error\":400}");
+ res.end();
+ }
+ } catch (e) {
+ console.error(e);
+ res.writeHead(502, {'Content-Type':'application/json'});
+ res.write("{\"error\":502}");
+ res.end();
+ }
+ })
+} \ No newline at end of file