2021-08-10 14:50:08 +00:00
|
|
|
import fetch from "node-fetch"
|
|
|
|
|
2021-08-11 20:22:16 +00:00
|
|
|
import connectToDatabase from "./lib/dbConnect"
|
|
|
|
|
2021-08-10 14:50:08 +00:00
|
|
|
export default async (req, res) => {
|
|
|
|
const { method } = req
|
|
|
|
const db = await connectToDatabase()
|
|
|
|
|
|
|
|
switch (method) {
|
|
|
|
case "POST":
|
|
|
|
if (!req.body || !req.body.url || !req.body.cluster) {
|
|
|
|
res.status(400).json({ success: false, message: "Invalid body" })
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
await fetch(req.body.url)
|
|
|
|
} catch {
|
|
|
|
res.status(400).json({ success: false, message: "Invalid URL" })
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
await db.coll.insertOne({
|
|
|
|
_id: req.body.url,
|
|
|
|
cluster: req.body.cluster
|
|
|
|
})
|
|
|
|
} catch {
|
|
|
|
res.status(400).json({ success: false, message: "Error Inserting to DB" })
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res.status(200).json({ url: req.body.url })
|
|
|
|
|
|
|
|
break
|
|
|
|
case "DELETE":
|
|
|
|
if (!req.query.url) {
|
|
|
|
res.status(400).json({ success: false, message: "Invalid body" })
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
const { deletedCount } = await db.coll.deleteOne({
|
|
|
|
_id: req.query.url
|
|
|
|
})
|
|
|
|
|
|
|
|
if (deletedCount == 0) {
|
|
|
|
res.status(400).json({ success: false, message: "Not Found" })
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
} catch {
|
|
|
|
res.status(400).json({ success: false, message: "Error Deleting from DB" })
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res.status(200).json({ url: req.query.url })
|
|
|
|
break
|
|
|
|
default:
|
|
|
|
res.status(404).json({ success: false })
|
|
|
|
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|