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