|
import { NextApiRequest, NextApiResponse } from 'next'; |
|
import { odds, serp, sports, coin } from './embed'; |
|
|
|
export const config = { |
|
api: { |
|
bodyParser: { |
|
sizeLimit: '1mb', |
|
}, |
|
}, |
|
}; |
|
|
|
type FunctionHandler = any; |
|
|
|
const handlers: FunctionHandler = { |
|
'search': serp, |
|
'sports_odds': odds, |
|
'sports_results': sports, |
|
'coinmarketcap': coin |
|
}; |
|
|
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) { |
|
const args = req.body.args as string; |
|
const functionName = req.body.name as string; |
|
const functionInput = JSON.parse(args); |
|
|
|
const functionHandler = handlers[functionName]; |
|
|
|
if (!functionHandler) { |
|
console.error(`Function "${functionName}" is not supported.`); |
|
return res.status(500).json({ error: `Function "${functionName}" is not supported.` }); |
|
} |
|
|
|
try { |
|
const result = await functionHandler(functionInput); |
|
return res.status(200).send(result); |
|
} catch (error) { |
|
console.error(error); |
|
|
|
return res.status(500).json({ error: error.message }); |
|
} |
|
} |
|
|