banatie-service/apps/landing/src/lib/db/queries/projects.ts

36 lines
900 B
TypeScript

import { db } from '../client';
import { projects, type Project, type NewProject } from '@banatie/database';
import { eq, and } from 'drizzle-orm';
export async function getProjectByName(organizationId: string, name: string): Promise<Project | null> {
const [project] = await db
.select()
.from(projects)
.where(
and(
eq(projects.organizationId, organizationId),
eq(projects.name, name)
)
)
.limit(1);
return project || null;
}
export async function createProject(data: NewProject): Promise<Project> {
const [project] = await db
.insert(projects)
.values(data)
.returning();
return project!;
}
export async function listProjectsByOrganization(organizationId: string): Promise<Project[]> {
return db
.select()
.from(projects)
.where(eq(projects.organizationId, organizationId))
.orderBy(projects.createdAt);
}