mirror of
https://github.com/MedzikUser/gatsby-pingbot
synced 2024-08-15 03:20:27 +00:00
58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
import fetch from 'node-fetch'
|
|
|
|
import connectToDatabase from './lib/dbConnect'
|
|
|
|
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) {
|
|
return res.status(400).json({ success: false, message: 'Invalid body' })
|
|
}
|
|
|
|
try {
|
|
await fetch(req.body.url)
|
|
} catch {
|
|
return res.status(400).json({ success: false, message: 'Invalid URL' })
|
|
}
|
|
|
|
try {
|
|
await db.coll.insertOne({
|
|
_id: req.body.url,
|
|
cluster: req.body.cluster
|
|
})
|
|
} catch {
|
|
return res.status(400).json({ success: false, message: 'Error Inserting to DB' })
|
|
}
|
|
|
|
res.status(200).json({ success: true, url: req.body.url })
|
|
|
|
break
|
|
case 'DELETE':
|
|
if (!req.query.url) {
|
|
return res.status(400).json({ success: false, message: 'Invalid body' })
|
|
}
|
|
|
|
try {
|
|
const { deletedCount } = await db.coll.deleteOne({
|
|
_id: req.query.url
|
|
})
|
|
|
|
if (deletedCount == 0) {
|
|
return res.status(400).json({ success: false, message: 'Not Found' })
|
|
}
|
|
} catch {
|
|
return res.status(400).json({ success: false, message: 'Error Deleting from DB' })
|
|
}
|
|
|
|
res.status(200).json({ success: true, url: req.query.url })
|
|
|
|
break
|
|
default:
|
|
res.status(404).json({ success: false })
|
|
|
|
break
|
|
}
|
|
}
|