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
|
|
|
|
}
|
|
|
|
}
|