gatsby-pingbot/api/index.ts

48 lines
1.1 KiB
TypeScript
Raw Permalink Normal View History

2021-09-15 19:39:07 +00:00
import { VercelRequest, VercelResponse } from '@vercel/node'
2021-09-19 13:59:45 +00:00
2021-09-18 17:01:48 +00:00
import addURL from '../lib/api/add'
import deleteURL from '../lib/api/delete'
2021-09-17 19:38:34 +00:00
2021-09-15 19:39:07 +00:00
import dbConnect from '../lib/dbConnect'
import URLModel from '../lib/schema'
export default async (request: VercelRequest, response: VercelResponse) => {
const { method } = request
switch (method) {
case 'POST':
if (!request.body || !request.body.url) {
2021-09-17 19:38:34 +00:00
return response.status(400).json({
success: false,
message: 'Invalid body'
})
2021-09-15 19:39:07 +00:00
}
2021-09-18 17:01:48 +00:00
return addURL(request.body.url, response)
2021-09-15 19:39:07 +00:00
case 'DELETE':
if (!request.query.url) {
2021-09-17 19:38:34 +00:00
return response.status(400).json({
success: false,
message: 'Invalid body'
})
2021-09-15 19:39:07 +00:00
}
2021-09-18 17:01:48 +00:00
if (typeof request.query.url != 'string') {
2021-09-17 19:38:34 +00:00
return response.status(400).json({
success: false,
2021-09-18 17:01:48 +00:00
message: 'Query URL isn\'t string'
2021-09-17 19:38:34 +00:00
})
2021-09-15 19:39:07 +00:00
}
2021-09-18 17:01:48 +00:00
return deleteURL(request.query.url, response)
2021-09-15 19:39:07 +00:00
default:
2021-09-18 17:01:48 +00:00
await dbConnect()
2021-09-16 20:47:50 +00:00
response.status(200).json({
2021-09-17 19:38:34 +00:00
db: await URLModel.find()
2021-09-16 20:47:50 +00:00
})
2021-09-15 19:39:07 +00:00
break
}
}