mirror of
https://github.com/MedzikUser/gatsby-pingbot
synced 2024-08-15 03:20:27 +00:00
46 lines
974 B
TypeScript
46 lines
974 B
TypeScript
import { VercelResponse } from '@vercel/node'
|
|
import axios from 'axios'
|
|
|
|
import blacklist from './blacklist.json'
|
|
import dbConnect from '../dbConnect'
|
|
import URLModel from '../schema'
|
|
|
|
export default async function addURL(url: string, response: VercelResponse) {
|
|
blacklist.forEach(b => {
|
|
if (url.includes(b)) {
|
|
return response.status(400).json({
|
|
success: false,
|
|
message: 'URL in on blacklist'
|
|
})
|
|
}
|
|
})
|
|
|
|
// fetch url (e.g. check domain exist)
|
|
try {
|
|
await axios.get(url)
|
|
} catch (err) {
|
|
return response.status(400).json({
|
|
success: false,
|
|
message: 'Invalid URL'
|
|
})
|
|
}
|
|
|
|
await dbConnect()
|
|
|
|
try {
|
|
const dbURL = new URLModel({ url })
|
|
|
|
await dbURL.save()
|
|
|
|
return response.status(200).json({
|
|
success: true,
|
|
message: `Added ${url}`
|
|
})
|
|
} catch (err) {
|
|
console.error(err)
|
|
return response.status(400).json({
|
|
success: false,
|
|
message: 'Already exist?'
|
|
})
|
|
}
|
|
}
|