-
-
Not quite there yet
-
- We're still working on Openpanel, but we're not quite there yet.
- We'll let you know when we're ready to go!
+ const isAccepted = await isWaitlistUserAccepted();
+ if (!isAccepted) {
+ return (
+
+
+
+
Not quite there yet
+
+ We're still working on Openpanel, but we're not quite there yet.
+ We'll let you know when we're ready to go!
+
-
- );
+ );
+ }
}
if (organizations.length > 0) {
diff --git a/packages/db/prisma/migrations/20240311201118_add_accepted_to_waitinglist/migration.sql b/packages/db/prisma/migrations/20240311201118_add_accepted_to_waitinglist/migration.sql
new file mode 100644
index 00000000..4d3ef305
--- /dev/null
+++ b/packages/db/prisma/migrations/20240311201118_add_accepted_to_waitinglist/migration.sql
@@ -0,0 +1,2 @@
+-- AlterTable
+ALTER TABLE "waitlist" ADD COLUMN "accepted" BOOLEAN NOT NULL DEFAULT false;
diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma
index 815e63c5..1800d578 100644
--- a/packages/db/prisma/schema.prisma
+++ b/packages/db/prisma/schema.prisma
@@ -153,6 +153,7 @@ model Waitlist {
email String @unique
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
+ accepted Boolean @default(false)
@@map("waitlist")
}
diff --git a/packages/db/src/services/user.service.ts b/packages/db/src/services/user.service.ts
index a41815ce..8921fe1c 100644
--- a/packages/db/src/services/user.service.ts
+++ b/packages/db/src/services/user.service.ts
@@ -1,6 +1,8 @@
import { auth, clerkClient } from '@clerk/nextjs';
import type { User } from '@clerk/nextjs/dist/types/server';
+import { db } from '../prisma-client';
+
export function transformUser(user: User) {
return {
name: `${user.firstName} ${user.lastName}`,
@@ -22,3 +24,18 @@ export async function getCurrentUser() {
export async function getUserById(id: string) {
return clerkClient.users.getUser(id).then(transformUser);
}
+
+export async function isWaitlistUserAccepted() {
+ const user = await getCurrentUser();
+ const waitlist = await db.waitlist.findFirst({
+ where: {
+ email: user?.email,
+ },
+ });
+
+ if (!waitlist) {
+ return false;
+ }
+
+ return waitlist.accepted;
+}