From b08e1b986a3e619d457e350fe860c36aa1a043ef Mon Sep 17 00:00:00 2001 From: jojopirker Date: Wed, 4 Jan 2023 15:19:46 +0100 Subject: [PATCH] split api into multiple files --- website/src/pages/api/messages/index.tsx | 26 +++++++++++++++++++ .../api/{messages.ts => messages/user.tsx} | 4 +-- website/src/pages/messages.tsx | 6 ++--- 3 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 website/src/pages/api/messages/index.tsx rename website/src/pages/api/{messages.ts => messages/user.tsx} (84%) diff --git a/website/src/pages/api/messages/index.tsx b/website/src/pages/api/messages/index.tsx new file mode 100644 index 00000000..b5a82bb1 --- /dev/null +++ b/website/src/pages/api/messages/index.tsx @@ -0,0 +1,26 @@ +import { boolean } from "boolean"; +import { getToken } from "next-auth/jwt"; + +const handler = async (req, res) => { + const token = await getToken({ req }); + + // Return nothing if the user isn't registered. + if (!token) { + res.status(401).end(); + return; + } + + const messagesRes = await fetch(`${process.env.FASTAPI_URL}/api/v1/messages`, { + method: "GET", + headers: { + "X-API-Key": process.env.FASTAPI_KEY, + "Content-Type": "application/json", + }, + }); + const messages = await messagesRes.json(); + + // Send recieved messages to the client. + res.status(200).json(messages); +}; + +export default handler; diff --git a/website/src/pages/api/messages.ts b/website/src/pages/api/messages/user.tsx similarity index 84% rename from website/src/pages/api/messages.ts rename to website/src/pages/api/messages/user.tsx index 53b529b5..58a8f10e 100644 --- a/website/src/pages/api/messages.ts +++ b/website/src/pages/api/messages/user.tsx @@ -1,4 +1,3 @@ -import { boolean } from "boolean"; import { getToken } from "next-auth/jwt"; const handler = async (req, res) => { @@ -11,9 +10,8 @@ const handler = async (req, res) => { } //TODO: add params if needed - const reqParams = req.query; const params = new URLSearchParams({ - username: boolean(reqParams.allUsers) ? "" : token.sub, + username: token.sub, }); const messagesRes = await fetch(`${process.env.FASTAPI_URL}/api/v1/messages?${params}`, { diff --git a/website/src/pages/messages.tsx b/website/src/pages/messages.tsx index 7509922d..0182b8c5 100644 --- a/website/src/pages/messages.tsx +++ b/website/src/pages/messages.tsx @@ -3,12 +3,10 @@ import { Box, CircularProgress, HStack, - Image, SimpleGrid, Stack, StackDivider, Text, - useColorMode, useColorModeValue, } from "@chakra-ui/react"; import Head from "next/head"; @@ -68,13 +66,13 @@ const MessagesDashboard = () => { const [messages, setMessages] = useState([]); const [userMessages, setUserMessages] = useState([]); - const { isLoading: isLoadingAll } = useSWRImmutable("/api/messages?allUsers=true", fetcher, { + const { isLoading: isLoadingAll } = useSWRImmutable("/api/messages", fetcher, { onSuccess: (data) => { setMessages(data); }, }); - const { isLoading: isLoadingUser } = useSWRImmutable(`/api/messages`, fetcher, { + const { isLoading: isLoadingUser } = useSWRImmutable(`/api/messages/user`, fetcher, { onSuccess: (data) => { setUserMessages(data); },