website/links/index.js

47 lines
1.0 KiB
JavaScript
Raw Normal View History

const express = require("express")
const { MongoClient } = require("mongodb")
2023-06-11 20:19:35 +03:00
const { makeID } = require("../api/util.js")
require("dotenv").config()
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
const client = new MongoClient(process.env.DATABASE)
app.get("/:id", async (req, res) => {
const id = req.params.id
2023-06-11 20:19:35 +03:00
if (typeof id !== "string") return res.redirect("/projects")
await client.connect()
const db = client.db("ngn13")
const col = db.collection("projects")
const projects = await col.find().toArray()
2023-06-11 20:19:35 +03:00
for (let i = 0; i < projects.length; i++) {
if (makeID(projects[i]["name"]) === id) {
res.redirect(projects[i]["url"])
await col.updateOne(
{ name: projects[i]["name"] },
{ $set: { click: projects[i]["click"] + 1 } }
)
}
}
return res.redirect("/projects")
})
async function pexit() {
await client.close()
process.exit()
}
process.on("SIGTERM", pexit)
process.on("SIGINT", pexit)
export default {
path: "/l",
handler: app
2023-06-11 20:19:35 +03:00
}