24 lines
1.4 KiB
TypeScript
24 lines
1.4 KiB
TypeScript
// AUTO-GENERATED by `wrnexus db generate` — do not edit.
|
|
import type { Db, ExecResult } from "@wrnexus/db";
|
|
import { users } from "./schema.ts";
|
|
|
|
export async function GetUserByEmail(db: Db, args: { email: string }): Promise<{ id: number; email: string; name: string; active: boolean; passwordHash: string; createdAt: Date } | null> {
|
|
return (await db.one("SELECT * FROM users WHERE email = $1", [args.email], users)) as { id: number; email: string; name: string; active: boolean; passwordHash: string; createdAt: Date } | null;
|
|
}
|
|
|
|
export async function ListUsers(db: Db): Promise<{ id: number; name: string; active: boolean }[]> {
|
|
return (await db.all("SELECT id, name, active FROM users ORDER BY name", [], users)) as { id: number; name: string; active: boolean }[];
|
|
}
|
|
|
|
export async function CountActive(db: Db, args: { active: boolean }): Promise<{ n: number } | null> {
|
|
return (await db.one("SELECT COUNT(*) AS n FROM users WHERE active = $1", [args.active])) as { n: number } | null;
|
|
}
|
|
|
|
export async function CreateUser(db: Db, args: { email: string; name: string; active: boolean }): Promise<ExecResult> {
|
|
return db.exec("INSERT INTO users (email, name, active) VALUES ($1, $2, $3)", [args.email, args.name, args.active]);
|
|
}
|
|
|
|
export async function DeactivateUser(db: Db, args: { id: number }): Promise<ExecResult> {
|
|
return db.exec("UPDATE users SET active = 0 WHERE id = $1", [args.id]);
|
|
}
|