From b23761c1067506dd77d56dafc3d56c9085a0451b Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Mon, 28 Aug 2023 00:31:47 -0600 Subject: [PATCH] Remove email and move fully to app router --- package.json | 1 - src/app/_components/templates/Welcome.tsx | 51 ------------------- .../ping.ts => app/api/private/ping/route.ts} | 10 ++-- .../ping.ts => app/api/public/ping/route.ts} | 10 ++-- .../index.ts => app/api/webhooks/route.ts} | 10 ++-- src/server/webhookHelpers.ts | 15 ------ 6 files changed, 15 insertions(+), 82 deletions(-) delete mode 100644 src/app/_components/templates/Welcome.tsx rename src/{pages/api/private/ping.ts => app/api/private/ping/route.ts} (56%) rename src/{pages/api/public/ping.ts => app/api/public/ping/route.ts} (56%) rename src/{pages/api/webhooks/index.ts => app/api/webhooks/route.ts} (92%) diff --git a/package.json b/package.json index 572a433..dcd3a82 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "react-dom": "18.2.0", "react-email": "^1.9.4", "react-icons": "^4.10.1", - "resend": "^1.0.0", "sharp": "^0.32.5", "superjson": "1.13.1", "zod": "^3.22.2" diff --git a/src/app/_components/templates/Welcome.tsx b/src/app/_components/templates/Welcome.tsx deleted file mode 100644 index 6d4cf2f..0000000 --- a/src/app/_components/templates/Welcome.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { - Body, - Container, - Head, - Heading, - Hr, - Html, - Img, - Preview, - Section, - Text, -} from "@react-email/components"; -import * as React from "react"; - -interface WelcomeTemplateProps { - name: string; -} - -const baseUrl = process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : "http://localhost:3000"; - -export const Welcome = ({ name }: WelcomeTemplateProps) => ( - - - 🎉 Welcome to Sprint Padawan! 🎉 - - -
- {`Sprint -
- - 🎉 Welcome to Sprint Padawan, {name}! 🎉 - - Hello {name}, - Thank you for signing up for Sprint Padawan! - - If at any point you encounter issues, please let me know at - support@sprintpadawan.dev. - -
- — Atridad Lahiji -
- - -); diff --git a/src/pages/api/private/ping.ts b/src/app/api/private/ping/route.ts similarity index 56% rename from src/pages/api/private/ping.ts rename to src/app/api/private/ping/route.ts index ca89e26..bf4b910 100644 --- a/src/pages/api/private/ping.ts +++ b/src/app/api/private/ping/route.ts @@ -1,13 +1,13 @@ import { NextResponse } from "next/server"; -export const config = { - runtime: "edge", - regions: ["pdx1"], -}; +export const runtime = "edge"; +export const preferredRegion = ["pdx1"]; -export default function handler() { +function handler() { return NextResponse.json( { message: "Private Pong!" }, { status: 200, statusText: "SUCCESS" } ); } + +export { handler as GET }; diff --git a/src/pages/api/public/ping.ts b/src/app/api/public/ping/route.ts similarity index 56% rename from src/pages/api/public/ping.ts rename to src/app/api/public/ping/route.ts index e5b6a76..a1e4d0c 100644 --- a/src/pages/api/public/ping.ts +++ b/src/app/api/public/ping/route.ts @@ -1,13 +1,13 @@ import { NextResponse } from "next/server"; -export const config = { - runtime: "edge", - regions: ["pdx1"], -}; +export const runtime = "edge"; +export const preferredRegion = ["pdx1"]; -export default function handler() { +function handler() { return NextResponse.json( { message: "Public Pong!" }, { status: 200, statusText: "SUCCESS" } ); } + +export { handler as GET }; diff --git a/src/pages/api/webhooks/index.ts b/src/app/api/webhooks/route.ts similarity index 92% rename from src/pages/api/webhooks/index.ts rename to src/app/api/webhooks/route.ts index 3448640..df2aaa2 100644 --- a/src/pages/api/webhooks/index.ts +++ b/src/app/api/webhooks/route.ts @@ -9,12 +9,10 @@ import { WebhookEvents, } from "~/utils/types"; -export const config = { - runtime: "edge", - regions: ["pdx1"], -}; +export const runtime = "edge"; +export const preferredRegion = ["pdx1"]; -export default async function handler(req: NextRequest) { +async function handler(req: NextRequest) { try { const eventBody = (await req.json()) as WebhookEventBody; const { data, type } = WebhookEventBodySchema.parse(eventBody); @@ -61,3 +59,5 @@ export default async function handler(req: NextRequest) { ); } } + +export { handler as POST }; diff --git a/src/server/webhookHelpers.ts b/src/server/webhookHelpers.ts index 2eafcf9..049f327 100644 --- a/src/server/webhookHelpers.ts +++ b/src/server/webhookHelpers.ts @@ -2,10 +2,6 @@ import { eq } from "drizzle-orm"; import { db } from "./db"; import { rooms } from "./schema"; import { env } from "~/env.mjs"; -import { Welcome } from "~/app/_components/templates/Welcome"; -import { Resend } from "resend"; - -const resend = new Resend(env.RESEND_API_KEY); export const onUserDeletedHandler = async (userId: string) => { try { @@ -41,16 +37,5 @@ export const onUserCreatedHandler = async ( } ); - if (userUpdateResponse.ok) { - userEmails.forEach((userEmail) => { - void resend.sendEmail({ - from: "no-reply@sprintpadawan.dev", - to: userEmail, - subject: "🎉 Welcome to Sprint Padawan! 🎉", - react: Welcome({ name: userName ? userEmail : userEmail }), - }); - }); - } - return userUpdateResponse.ok; };