From 375f7397d777e2e590378c5e6cfdc3ae60925bdb Mon Sep 17 00:00:00 2001 From: Sachi Goto <70562492+SachiGoto@users.noreply.github.com> Date: Tue, 14 Nov 2023 07:56:09 -0800 Subject: [PATCH 1/2] work in progress. --- src/app/(events)/eventData/page.tsx | 39 +++++++++++++++++++ src/app/api/events/mockData/route.ts | 58 ++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 src/app/(events)/eventData/page.tsx create mode 100644 src/app/api/events/mockData/route.ts diff --git a/src/app/(events)/eventData/page.tsx b/src/app/(events)/eventData/page.tsx new file mode 100644 index 0000000..d517684 --- /dev/null +++ b/src/app/(events)/eventData/page.tsx @@ -0,0 +1,39 @@ +// pages/index.tsx +"use client"; +import { useEffect } from "react"; + +// interface MeetupData { +// // Define the structure of your Meetup data here +// // Example: name: string; +// } + +export default function FetchDataPage() { + // const [data, setData] = useState(null); + + useEffect(() => { + const fetchData = async () => { + try { + const response = await fetch("/api/events/mockData", { + method: "POST", + }); + + if (response.ok) { + // const result = await response.json(); + // setData(result); + } else { + console.error("Error:", response.statusText); + } + } catch (error) { + console.error("Error:", error); + } + }; + + void fetchData(); + }, []); + + return ( +
+

Meetup Data

+
+ ); +} diff --git a/src/app/api/events/mockData/route.ts b/src/app/api/events/mockData/route.ts new file mode 100644 index 0000000..2cf2d06 --- /dev/null +++ b/src/app/api/events/mockData/route.ts @@ -0,0 +1,58 @@ +// @ts-nocheck + +import type { NextApiRequest, NextApiResponse } from "next"; +import axios from "axios"; + +const handler = async (req: NextApiRequest, res: NextApiResponse) => { + if (req.method === "POST") { + const url = "https://www.meetup.com/gql"; + + const headers = { + "Content-Type": "application/json", + }; + + const body = { + operationName: "categorySearch", + variables: { + first: 100, + lat: 49.279998779296875, + lon: -123.04000091552734, + topicCategoryId: 546, + startDateRange: "2023-11-10T10:50:50-05:00[US/Eastern]", + sortField: "DATETIME", + after: "", + }, + extensions: { + persistedQuery: { + version: 1, + sha256Hash: + "0aceed81313ebba814c0feadeda32f404147996091b6b77209353e2183b2dabb", + }, + }, + }; + + try { + const response = await axios.post(url, body, { headers }); + + // Include CORS headers if needed + res.setHeader("Access-Control-Allow-Origin", "*"); + res.setHeader("Access-Control-Allow-Methods", "POST"); + + // res.status(response.status).json(response.data); + + res.status(200).json({ status:200 , data: response}); + + } catch (error) { + console.error("Error:", error); + + // Include more details in the error response + res + .status(500) + .json({ error: "Internal Server Error", details: error }); + } + } else { + res.status(405).json({ error: "Method Not Allowed" }); + } +}; + +export default handler; From 9901c6ccb1d80562e4483de7f5ad08e2ab79630e Mon Sep 17 00:00:00 2001 From: Sachi Goto <70562492+SachiGoto@users.noreply.github.com> Date: Thu, 23 Nov 2023 14:36:32 -0800 Subject: [PATCH 2/2] revised routes.ts --- src/app/(events)/eventData/page.tsx | 2 + src/app/api/events/mockData/route.ts | 62 +++++++++------------------- 2 files changed, 22 insertions(+), 42 deletions(-) diff --git a/src/app/(events)/eventData/page.tsx b/src/app/(events)/eventData/page.tsx index d517684..18743dd 100644 --- a/src/app/(events)/eventData/page.tsx +++ b/src/app/(events)/eventData/page.tsx @@ -18,6 +18,8 @@ export default function FetchDataPage() { }); if (response.ok) { + console.log('response', response) + console.log('response', response.json()) // const result = await response.json(); // setData(result); } else { diff --git a/src/app/api/events/mockData/route.ts b/src/app/api/events/mockData/route.ts index 2cf2d06..59bd21c 100644 --- a/src/app/api/events/mockData/route.ts +++ b/src/app/api/events/mockData/route.ts @@ -1,58 +1,36 @@ -// @ts-nocheck -import type { NextApiRequest, NextApiResponse } from "next"; -import axios from "axios"; -const handler = async (req: NextApiRequest, res: NextApiResponse) => { - if (req.method === "POST") { - const url = "https://www.meetup.com/gql"; - - const headers = { +export async function POST() { + const res = await fetch("https://www.meetup.com/gql2", { + method: "POST", + headers: { "Content-Type": "application/json", - }; - - const body = { - operationName: "categorySearch", + }, + body: JSON.stringify({ + operationName: "recommendedEventsWithSeries", variables: { - first: 100, + first: 200, lat: 49.279998779296875, lon: -123.04000091552734, - topicCategoryId: 546, - startDateRange: "2023-11-10T10:50:50-05:00[US/Eastern]", + topicCategoryId: "546", + startDateRange: "2023-11-23T17:20:15-05:00[US/Eastern]", sortField: "DATETIME", - after: "", + doConsolidateEvents: false, + after: + "Y21WalUyOTFjbU5sT25KaGJtdGxaQzFsZG1WdWRITXRZbmt0ZEdsdFpTeHBibVJsZURveU1BPT0=", }, extensions: { persistedQuery: { version: 1, sha256Hash: - "0aceed81313ebba814c0feadeda32f404147996091b6b77209353e2183b2dabb", + "0dd88409952899c04bb45c32890ba7383d5ae2ba6c9bdfd4ea2cffee77bbdf12", }, }, - }; - - try { - const response = await axios.post(url, body, { headers }); - - // Include CORS headers if needed - res.setHeader("Access-Control-Allow-Origin", "*"); - res.setHeader("Access-Control-Allow-Methods", "POST"); - - // res.status(response.status).json(response.data); - - res.status(200).json({ status:200 , data: response}); - - } catch (error) { - console.error("Error:", error); + }), + }); - // Include more details in the error response - res - .status(500) - .json({ error: "Internal Server Error", details: error }); - } - } else { - res.status(405).json({ error: "Method Not Allowed" }); - } -}; + // const data = await res.json(); + // console.log("data", data); -export default handler; + // return Response.json(data); +}