Something went wrong. Try again.
a tool for shared writing and social publishing
Something went wrong. Try again.
TypeScript
12345678910111213141516171819202122232425262728293031323334353637"use server";
import { drizzle } from "drizzle-orm/node-postgres";import { entities, permission_tokens, permission_token_rights,} from "drizzle/schema";import { eq } from "drizzle-orm";import { PermissionToken } from "src/replicache";import { pool } from "supabase/pool";
export async function deleteLeaflet(permission_token: PermissionToken) { const client = await pool.connect(); const db = drizzle(client); await db.transaction(async (tx) => { let [token] = await tx .select() .from(permission_tokens) .leftJoin( permission_token_rights, eq(permission_tokens.id, permission_token_rights.token), ) .where(eq(permission_tokens.id, permission_token.id));
if (!token?.permission_token_rights?.write) return; await tx .delete(entities) .where(eq(entities.set, token.permission_token_rights.entity_set)); await tx .delete(permission_tokens) .where(eq(permission_tokens.id, permission_token.id)); }); client.release(); return;}