skbeta/app/auth/signup/route.ts
Christopher Arraya c55ab3d49e initial commit
2024-01-13 20:55:51 -05:00

53 lines
1.4 KiB
TypeScript

import { createRouteHandlerClient } from "@supabase/auth-helpers-nextjs";
import { cookies } from "next/headers";
import { NextResponse, NextRequest } from "next/server";
import { Database } from "@/types/supabase";
import { WorkspaceResponse } from "@/types";
import prisma from "@/lib/prisma";
export const dynamic = "force-dynamic";
// add check on beta_testers table to see if user is a beta tester. if they aren't, then don't allow them to sign up
export async function POST(request: Request) {
const requestUrl = new URL(request.url);
const formData = await request.json();
const email = String(formData.email);
const password = String(formData.password);
const supabase = createRouteHandlerClient({ cookies });
const checkBeta = await prisma.beta_testers.findFirst({
where: {
email: email,
},
});
if (!checkBeta) {
return NextResponse.json(
{ error: "You are not a beta tester" },
{ status: 401 }
);
}
const { error } = await supabase.auth.signUp({
email,
password,
options: {
emailRedirectTo: `${requestUrl.origin}/auth/callback`,
},
});
if (error) {
console.error(error);
return NextResponse.json(
{ error: "Could not authenticate user" },
{ status: 401 }
);
}
return NextResponse.json(
{ message: "Check email to continue sign in process" },
{ status: 301 }
);
}