Working supabase structure

This commit is contained in:
2025-12-23 15:25:07 +01:00
parent a39c4fa26d
commit 8d9b60def0
2 changed files with 53 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
"use server";
import createClient from "@/actions/supa";
import getSession from "./get-session";
/**
* Request a temporary relay token for a DM node or server.
*/
export async function authRelay(server_id: string) {
const supabase = await createClient();
const user_id = await getSession();
if (!user_id) {
throw new Error("Invalid user id");
}
const { data: relayToken, error: errorRelay } = await supabase
.from("server_auth")
.insert({ user_id: user_id, server_id })
.select("key")
.maybeSingle();
if (!relayToken || errorRelay) {
throw new Error("Failed to create relay token");
}
return relayToken.key as string;
}
+24
View File
@@ -0,0 +1,24 @@
import { cookies } from "next/headers";
import { createServerClient } from "@supabase/ssr";
export default async function createClient() {
const cookieStore = await cookies();
return createServerClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.SUPABASE_SERVICE_ROLE_KEY!,
{
cookies: {
get(name) {
return cookieStore.get(name)?.value;
},
set(name, value) {
cookieStore.set(name, value);
},
remove(name) {
cookieStore.delete(name);
},
},
}
);
}