Add GET-only (for now) config fetching API route

This commit is contained in:
Xevion
2023-02-27 19:06:36 -06:00
parent 6d93b24a9a
commit cf976b6b6d
2 changed files with 50 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
import type {NextApiRequest, NextApiResponse} from 'next';
import {env} from '@/env/server.mjs';
import {fetchConfiguration} from "@/db";
import {Configuration} from "@/timing";
type StatusData = { status: ResponseStatus };
type ResponseStatus =
| 'unauthorized'
| 'failed'
| 'success';
export default async function handler(
req: NextApiRequest,
res: NextApiResponse<StatusData | Configuration>
) {
if (req.query.key != env.API_KEY) {
// auth failed
res.status(401).json({status: 'unauthorized'});
return;
}
if (req.method == "GET") {
try {
const configuration = await fetchConfiguration();
res.status(200).json(configuration);
} catch (e) {
console.error(e);
res.status(500).json({status: "failed"});
}
} else if (req.method == "POST") {
res.status(200).json({status: 'success'});
}
}