Initial commit
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import "server-only";
|
||||
import { rawDb, uniqueSlug } from "@/lib/db/client";
|
||||
|
||||
function upsert(table: "studios" | "labels" | "series" | "actresses" | "genres", name: string): number {
|
||||
const trimmed = name.trim();
|
||||
if (!trimmed) throw new Error(`empty ${table.slice(0, -1)} name`);
|
||||
const existing = rawDb.prepare(`SELECT id FROM ${table} WHERE name = ?`).get(trimmed) as { id: number } | undefined;
|
||||
if (existing) return existing.id;
|
||||
const slug = uniqueSlug(rawDb, table, trimmed);
|
||||
const row = rawDb.prepare(`INSERT INTO ${table} (name, slug) VALUES (?, ?) RETURNING id`).get(trimmed, slug) as { id: number };
|
||||
return row.id;
|
||||
}
|
||||
|
||||
export const upsertStudio = (name: string) => upsert("studios", name);
|
||||
export const upsertLabel = (name: string) => upsert("labels", name);
|
||||
export const upsertSeries = (name: string) => upsert("series", name);
|
||||
export const upsertActress = (name: string) => upsert("actresses", name);
|
||||
export const upsertGenre = (name: string) => upsert("genres", name);
|
||||
Reference in New Issue
Block a user