From cc23310a5b496df38bbbc7124b14e60c90bdb39c Mon Sep 17 00:00:00 2001 From: Enstrayed <48845980+Enstrayed@users.noreply.github.com> Date: Tue, 9 Apr 2024 15:04:01 -0700 Subject: [PATCH] need to get off of redis immediately --- bun.lockb | Bin 0 -> 27340 bytes routes/etyd.js | 107 +++++++------------------------------------------ 2 files changed, 15 insertions(+), 92 deletions(-) create mode 100644 bun.lockb diff --git a/bun.lockb b/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..9c2504a6feb0b9bd3ce0fcf758f58f56ef0bb781 GIT binary patch literal 27340 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 Q2dzg { - rres.set("Access-Control-Allow-Headers","Authorization") - rres.set("Access-Control-Allow-Origin","*") - rres.sendStatus(204) -}) - -app.post("/etydwrite", (rreq,rres) => { - db.get(globalConfig.etyd.authKeyInDb).then(dbres => { - - if (dbres == null) { // If authkey key doesnt exist in redis then error out - console.log("ERROR: Configured key containing etyd authkeys is null") - rres.sendStatus(500) - } else { // if it does exist - let validKeys = dbres.split(",") // split the string into an array - if (validKeys.includes(rreq.get("Authorization"))) { // check if authorization header key exists in that array - - console.log(rreq.body) - - switch(rreq.body.action) { - case "set": // Write to db - - if (rreq.body.random == true) { - - let workingTarget = makeRandomHex() - - db.get(`/${workingTarget}`).then(dbres => { - if (dbres != null) { - let workingTarget = makeRandomHex() - - db.get(`/${workingTarget}`).then(dbres => { - if (dbres != null) { - // well fuck - rres.sendStatus(409) - - } - }) - - } else { - db.set(`/${workingTarget}`,rreq.body.value) - rres.send(`https://etyd.cc/${workingTarget}`) - } - }) - - } else { - - db.get(rreq.body.target).then(dbres => { // check if key already exists - if (dbres != null) { // if it does then send 409 conflict - console.log(`${rreq.get("cf-connecting-ip")} POST /etydwrite ACTION set returned 409 KEY:${rreq.get("Authorization")}`) - rres.sendStatus(409) - } else { - db.set(`/${rreq.body.target}`,rreq.body.value) - rres.send(`https://etyd.cc/${rreq.body.target}`) - } - }) - - } - break; - - - case "delete": - db.get(`/${rreq.body.target}`).then(dbres => { - if (dbres == null) { //if key doesnt exist then log and return 400 - console.log(`${rreq.get("cf-connecting-ip")} POST /etydwrite ACTION delete returned 400 KEY:${rreq.get("Authorization")}`) - rres.sendStatus(400) - } else { - db.del(`/${rreq.body.target}`) - rres.sendStatus(200) - } - }) - break; - - - default: - rres.sendStatus(400) // request json didnt include a valid action - break; - } - - } else { // if it doesnt then its a unauthorized request - console.log(`${rreq.get("cf-connecting-ip")} POST /etydwrite returned 401`) - rres.sendStatus(401) - } +app.get("/etyd*", (rreq,rres) => { + fetch(`http://${globalConfig.couchdb.host}/etyd${rreq.path.replace("/etyd","")}`, { + headers: { + "Authorization": `Basic ${btoa(globalConfig.couchdb.authorization)}` } + }).then(dbRes => { + if (dbRes.status == 404) { + rres.sendStatus(404) + } else { + dbRes.json().then(dbRes => { + rres.redirect(dbRes.content.url) + }) + } + }).catch(fetchError => { + rres.sendStatus(500) + console.log(`${rres.get("cf-connecting-ip")} GET ${rreq.path} returned 500: ${fetchError}`) }) })