mirror of
https://github.com/MedzikUser/gatsby-pingbot
synced 2024-08-15 03:20:27 +00:00
update
This commit is contained in:
parent
e468f3ea4d
commit
7d6d25bacc
3 changed files with 73 additions and 24 deletions
86
api/index.js
86
api/index.js
|
@ -1,6 +1,6 @@
|
|||
import fetch from 'node-fetch'
|
||||
import axios from 'axios'
|
||||
|
||||
import connectToDatabase from './lib/dbConnect'
|
||||
import connectToDatabase from '../lib/dbConnect'
|
||||
|
||||
export default async (req, res) => {
|
||||
const { method } = req
|
||||
|
@ -9,49 +9,97 @@ export default async (req, res) => {
|
|||
switch (method) {
|
||||
case 'POST':
|
||||
if (!req.body || !req.body.url || !req.body.cluster) {
|
||||
return res.status(400).json({ success: false, message: 'Invalid body' })
|
||||
return res.status(400).json(
|
||||
{
|
||||
success: false,
|
||||
message: 'Invalid body'
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
try {
|
||||
await fetch(req.body.url)
|
||||
await axios.get(req.body.url)
|
||||
} catch {
|
||||
return res.status(400).json({ success: false, message: 'Invalid URL' })
|
||||
return res.status(400).json(
|
||||
{
|
||||
success: false,
|
||||
message: 'Invalid URL'
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
try {
|
||||
await db.coll.insertOne({
|
||||
_id: req.body.url,
|
||||
cluster: req.body.cluster
|
||||
})
|
||||
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' })
|
||||
return res.status(400).json(
|
||||
{
|
||||
success: false,
|
||||
message: 'Error Inserting to DB'
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
res.status(200).json({ success: true, url: req.body.url })
|
||||
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' })
|
||||
return res.status(400).json(
|
||||
{
|
||||
success: false,
|
||||
message: 'Invalid body'
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
try {
|
||||
const { deletedCount } = await db.coll.deleteOne({
|
||||
_id: req.query.url
|
||||
})
|
||||
const { deletedCount } = await db.coll.deleteOne(
|
||||
{
|
||||
_id: req.query.url
|
||||
}
|
||||
)
|
||||
|
||||
if (deletedCount == 0) {
|
||||
return res.status(400).json({ success: false, message: 'Not Found' })
|
||||
return res.status(400).json(
|
||||
{
|
||||
success: false,
|
||||
message: 'Not Found'
|
||||
}
|
||||
)
|
||||
}
|
||||
} catch {
|
||||
return res.status(400).json({ success: false, message: 'Error Deleting from DB' })
|
||||
return res.status(400).json(
|
||||
{
|
||||
success: false,
|
||||
message: 'Error Deleting from DB'
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
res.status(200).json({ success: true, url: req.query.url })
|
||||
res.status(200).json(
|
||||
{
|
||||
success: true, url:
|
||||
req.query.url
|
||||
}
|
||||
)
|
||||
|
||||
break
|
||||
default:
|
||||
res.status(404).json({ success: false })
|
||||
res.status(404).json(
|
||||
{
|
||||
success: false
|
||||
}
|
||||
)
|
||||
|
||||
break
|
||||
}
|
||||
|
|
|
@ -5,13 +5,15 @@ const { MONGODB_URI, MONGODB_DB, MONGODB_COLLECTION } = process.env
|
|||
let cached = global.mongo
|
||||
|
||||
if (!cached) {
|
||||
cached = global.mongo = { conn: null, promise: null }
|
||||
cached = global.mongo = {
|
||||
conn: null,
|
||||
promise: null
|
||||
}
|
||||
}
|
||||
|
||||
export default async function connectToDatabase() {
|
||||
if (cached.conn) {
|
||||
if (cached.conn)
|
||||
return cached.conn
|
||||
}
|
||||
|
||||
if (!cached.promise) {
|
||||
const opts = {
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "pingbot",
|
||||
"version": "1.0.0",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"description": "Keep your apps alive on replit.com or glitch.com",
|
||||
"author": "Medzik",
|
||||
|
@ -25,7 +25,6 @@
|
|||
"gatsby-plugin-transition-link": "1.20.5",
|
||||
"gsap": "3.7.1",
|
||||
"mongodb": "4.1.1",
|
||||
"node-fetch": "2.6.1",
|
||||
"prop-types": "15.7.2",
|
||||
"react": "17.0.2",
|
||||
"react-dom": "17.0.2",
|
||||
|
|
Loading…
Reference in a new issue