refactor: update repo funcs to drizzle

This commit is contained in:
Henry
2025-04-24 14:07:41 +01:00
parent c1348cf455
commit d83e9d4dc5
20 changed files with 659 additions and 604 deletions

View File

@@ -1,12 +1,10 @@
import type { SupabaseClient } from "@supabase/supabase-js";
import { eq } from "drizzle-orm";
import type { dbClient } from "@kan/db/client";
import type { Database } from "@kan/db/types/database.types";
import * as schema from "@kan/db/schema";
import { users } from "@kan/db/schema";
export const getById = async (db: dbClient, userId: string) => {
const data = await db.query.users.findFirst({
return await db.query.users.findFirst({
columns: {
id: true,
name: true,
@@ -14,55 +12,48 @@ export const getById = async (db: dbClient, userId: string) => {
image: true,
stripeCustomerId: true,
},
where: eq(schema.users.id, userId),
where: eq(users.id, userId),
});
return data;
};
export const getByEmail = async (
db: SupabaseClient<Database>,
email: string,
) => {
const { data } = await db
.from("user")
.select(`id, name, email`)
.eq("email", email)
.limit(1)
.single();
return data;
export const getByEmail = (db: dbClient, email: string) => {
return db.query.users.findFirst({
columns: {
id: true,
name: true,
email: true,
},
where: eq(users.email, email),
});
};
export const create = async (
db: SupabaseClient<Database>,
export const create = (
db: dbClient,
user: { id: string; email: string; stripeCustomerId: string },
) => {
const { data } = await db
.from("user")
.insert({
id: user.id,
email: user.email,
stripeCustomerId: user.stripeCustomerId,
})
.select()
.limit(1)
.single();
return data;
return db.insert(users).values({
id: user.id,
email: user.email,
stripeCustomerId: user.stripeCustomerId,
});
};
export const update = async (
db: SupabaseClient<Database>,
db: dbClient,
userId: string,
updates: { image?: string; name?: string },
) => {
const { data } = await db
.from("user")
.update({ image: updates.image, name: updates.name })
.eq("id", userId)
.select(`image, name`)
.single();
const [result] = await db
.update(users)
.set({
name: updates.name,
image: updates.image,
})
.where(eq(users.id, userId))
.returning({
name: users.name,
image: users.image,
});
return data;
return result;
};