diff --git a/pages/api/faucet.ts b/pages/api/faucet.ts new file mode 100644 index 0000000..ea65cca --- /dev/null +++ b/pages/api/faucet.ts @@ -0,0 +1,36 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from 'next' + +interface ErrorResponse { + error: string +} + +export interface Faucet { + address: string; + secret: string; + xrp: number; + hash: string; + code: string; +} + + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse +) { + if (req.method !== 'POST') { + return res.status(405).json({ error: 'Method not allowed!' }) + } + try { + const response = await fetch('https://hooks-testnet.xrpl-labs.com/newcreds', { method: 'POST' }); + const json: Faucet | ErrorResponse = await response.json(); + if ("error" in json) { + return res.status(429).json(json) + } + return res.status(200).json(json); + } catch (err) { + console.log(err) + return res.status(500).json({ error: 'Server error' }) + } + return res.status(500).json({ error: 'Not able to create faucet, try again' }) +}