From c23fde54da8d0b83855a952753bb745422d38bc6 Mon Sep 17 00:00:00 2001 From: Xevion Date: Thu, 23 Feb 2023 20:39:43 -0600 Subject: [PATCH] api/cron handler --- src/pages/api/cron.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/pages/api/cron.ts diff --git a/src/pages/api/cron.ts b/src/pages/api/cron.ts new file mode 100644 index 0000000..8485b75 --- /dev/null +++ b/src/pages/api/cron.ts @@ -0,0 +1,29 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from "next"; +import { getDistance } from "@/location"; +import { env } from "@/env/server.mjs"; + +type ResponseData = { + name: string; +}; + +const center = { latitude: env.CENTER_LATITUDE, longitude: env.CENTER_LONGITUDE }; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse +) { + + if (req.query.key != env.API_KEY) { + // auth failed + res.status(401).json({ name: "Unauthorized" }); + return; + } + + const diff = await getDistance(); + + // auth passed + res.setHeader('Cache-Control', 'max-age=0, s-maxage=60, stale-while-revalidate'); + // @ts-ignore + res.status(200).json({ diff, inRange: diff < env.MAX_DISTANCE }); +}