diff options
Diffstat (limited to 'src/lib/server/services/projects.ts')
| -rw-r--r-- | src/lib/server/services/projects.ts | 55 |
1 files changed, 24 insertions, 31 deletions
diff --git a/src/lib/server/services/projects.ts b/src/lib/server/services/projects.ts index b58c2f1..d389aa5 100644 --- a/src/lib/server/services/projects.ts +++ b/src/lib/server/services/projects.ts @@ -1,38 +1,31 @@ -import { db as defaultDb } from '$lib/server/db'; import { projects } from '$lib/server/db/schema'; -import { asc, eq } from 'drizzle-orm'; -import type { AppDatabase } from './groceries'; +import { eq } from 'drizzle-orm'; +import type { AppDatabase } from '$lib/server/db/types'; import type { Project } from './types'; -export async function loadAll(db = defaultDb): Promise<Project[]> { - return db - .select() - .from(projects) - .where(eq(projects.archived, false)) - .orderBy(asc(projects.name)); -} +export class ProjectsService { + constructor(private readonly db: AppDatabase) {} -export async function add(name: string, db = defaultDb): Promise<Project> { - const [inserted] = await db.insert(projects).values({ name }).returning(); - return inserted; -} + async add(name: string): Promise<Project> { + const [inserted] = await this.db + .insert(projects) + .values({ name }) + .returning(); + return inserted; + } -export async function rename( - id: number, - name: string, - db = defaultDb, -): Promise<void> { - await db.update(projects).set({ name }).where(eq(projects.id, id)); -} - -export async function archive(id: number, db = defaultDb): Promise<void> { - await db.update(projects).set({ archived: true }).where(eq(projects.id, id)); -} + async archive(id: number): Promise<void> { + await this.db + .update(projects) + .set({ archived: true }) + .where(eq(projects.id, id)); + } -export async function getById( - id: number, - db = defaultDb, -): Promise<Project | undefined> { - const [project] = await db.select().from(projects).where(eq(projects.id, id)); - return project; + async getById(id: number): Promise<Project | undefined> { + const [project] = await this.db + .select() + .from(projects) + .where(eq(projects.id, id)); + return project; + } } |
