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?' }) } }