gatsby-pingbot/api/index.ts

48 lines
1.1 KiB
TypeScript

import { VercelRequest, VercelResponse } from '@vercel/node'
import addURL from '../lib/api/add'
import deleteURL from '../lib/api/delete'
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) {
return response.status(400).json({
success: false,
message: 'Invalid body'
})
}
return addURL(request.body.url, response)
case 'DELETE':
if (!request.query.url) {
return response.status(400).json({
success: false,
message: 'Invalid body'
})
}
if (typeof request.query.url != 'string') {
return response.status(400).json({
success: false,
message: 'Query URL isn\'t string'
})
}
return deleteURL(request.query.url, response)
default:
await dbConnect()
response.status(200).json({
db: await URLModel.find()
})
break
}
}