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! 🎉
-
-
-
-
-
-
- 🎉 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;
};