fix: reenable member invites

This commit is contained in:
Henry
2025-05-22 12:18:56 +01:00
parent 82ec18e95e
commit 71c92eea27
16 changed files with 2183 additions and 231 deletions

View File

@@ -1,98 +0,0 @@
// import type { EmailOtpType } from "@supabase/supabase-js";
// import type { NextApiRequest } from "next";
// import { NextResponse } from "next/server";
// import { createDrizzleClient } from "@kan/db/client";
// import * as memberRepo from "@kan/db/repository/member.repo";
// import * as userRepo from "@kan/db/repository/user.repo";
// import { stripe } from "@kan/stripe";
// import { createNextApiClient } from "@kan/";
// export default async function handler(req: NextApiRequest) {
// if (req.method !== "GET") {
// return new NextResponse(null, {
// status: 405,
// headers: { Allow: "GET" },
// });
// }
// if (!req.url) {
// return new NextResponse(null, {
// status: 400,
// });
// }
// const url = new URL(req.url);
// const queryParams = Object.fromEntries(url.searchParams.entries());
// const tokenHash = queryParams.token_hash;
// const type = queryParams.type;
// const code = queryParams.code;
// const memberPublicId = queryParams.memberPublicId;
// let next = "/error";
// let authRes;
// const response = NextResponse.next();
// if ((tokenHash && type) ?? code) {
// const supabaseClient = createNextClient(req, response);
// if (tokenHash && type) {
// authRes = await supabaseClient.auth.verifyOtp({
// type: type as EmailOtpType,
// token_hash: tokenHash,
// });
// }
// if (code) {
// authRes = await supabaseClient.auth.exchangeCodeForSession(code);
// }
// const user = authRes?.data.user;
// const db = createDrizzleClient();
// if (user?.id && user.email) {
// const existingUser = await userRepo.getById(db, user.id);
// if (!existingUser) {
// const stripeCustomer = await stripe.customers.create({
// email: user.email,
// metadata: {
// userId: user.id,
// },
// });
// await userRepo.create(db, {
// id: user.id,
// email: user.email,
// stripeCustomerId: stripeCustomer.id,
// });
// }
// }
// if (memberPublicId) {
// const member = await memberRepo.getByPublicId(db, memberPublicId);
// if (member?.id) {
// await memberRepo.acceptInvite(db, member.id);
// }
// }
// if (authRes?.error) {
// console.error(authRes.error);
// } else {
// next = queryParams.next ?? "/boards";
// }
// }
// const redirectResponse = NextResponse.redirect(new URL(next, req.url));
// response.headers.getSetCookie().forEach((cookie) => {
// redirectResponse.headers.append("Set-Cookie", cookie);
// });
// return redirectResponse;
// }

View File

@@ -1,4 +1,4 @@
import { type NextApiRequest, type NextApiResponse } from "next";
import type { NextApiRequest, NextApiResponse } from "next";
import { createNextApiHandler } from "@trpc/server/adapters/next";
import { appRouter } from "@kan/api/root";
@@ -17,10 +17,7 @@ const nextApiHandler = createNextApiHandler({
: undefined,
});
export default async function handler(
req: NextApiRequest,
res: NextApiResponse,
) {
export default function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method === "OPTIONS") {
res.writeHead(200);
return res.end();