diff --git a/api/src/auth.ts b/api/src/auth.ts index 2fd8666..3625d90 100644 --- a/api/src/auth.ts +++ b/api/src/auth.ts @@ -1,11 +1,15 @@ import { betterAuth } from "better-auth"; +import { drizzleAdapter } from "better-auth/adapters/drizzle"; import { genericOAuth } from "better-auth/plugins"; import { expo } from "@better-auth/expo"; -import { Pool } from "pg"; +import { drizzleSchema } from "@money/shared/db"; +import { db } from "./db"; export const auth = betterAuth({ - database: new Pool({ - connectionString: process.env.DATABASE_URL, + database: drizzleAdapter(db, { + schema: drizzleSchema, + provider: "pg", + usePlural: true, }), trustedOrigins: ["money://", "http://localhost:8081"], plugins: [ diff --git a/api/src/db.ts b/api/src/db.ts new file mode 100644 index 0000000..7bc4768 --- /dev/null +++ b/api/src/db.ts @@ -0,0 +1,9 @@ +import { getDb } from "@money/shared/db"; + +if (!process.env.ZERO_UPSTREAM_DB) { + throw new Error("ZERO_UPSTREAM_DB is not set"); +} + +export const db = getDb({ + connectionString: process.env.ZERO_UPSTREAM_DB, +}); diff --git a/api/src/zero.ts b/api/src/zero.ts index 8055fc5..9786c10 100644 --- a/api/src/zero.ts +++ b/api/src/zero.ts @@ -13,6 +13,7 @@ import { createMutators as createMutatorsShared, queries, schema, + type Mutators, } from "@money/shared"; import type { AuthData } from "@money/shared/auth"; import { getHono } from "./hono"; @@ -25,11 +26,18 @@ const processor = new PushProcessor( ), ); +const createMutators = (authData: AuthData | null) => { + const mutators = createMutatorsShared(authData); + return { + ...mutators, + } as const satisfies Mutators; +} + const zero = getHono() .post("/mutate", async (c) => { const authData = c.get("auth"); - const result = await processor.process(createMutatorsShared(authData), c.req.raw); + const result = await processor.process(createMutators(authData), c.req.raw); return c.json(result); }) diff --git a/app/index.tsx b/app/index.tsx index 292f05e..49da189 100644 --- a/app/index.tsx +++ b/app/index.tsx @@ -12,6 +12,7 @@ export default function HomeScreen() { } const z = useZero(); const [transactions] = useQuery(queries.allTransactions(session)); + const [user] = useQuery(queries.me(session)); const onNew = () => { z.mutate.transaction.create({ @@ -22,10 +23,13 @@ export default function HomeScreen() { return ( - Hello {session?.user.name} + Hello {user?.name}