Files
classroomio/packages/db/src/queries/organization/quiz.ts
T

43 lines
1.2 KiB
TypeScript
Raw Normal View History

2026-03-09 11:18:22 +01:00
import * as schema from '@db/schema';
import type { TNewQuiz, TQuiz } from '@db/types';
import { db } from '@db/drizzle';
import { eq } from 'drizzle-orm';
export async function getQuizzesByOrganizationId(orgId: string): Promise<TQuiz[]> {
const quizzes = await db
.select()
.from(schema.quiz)
.where(eq(schema.quiz.organizationId, orgId))
.orderBy(schema.quiz.updatedAt);
return quizzes;
}
export async function getQuizById(quizId: string): Promise<TQuiz | null> {
const [quiz] = await db.select().from(schema.quiz).where(eq(schema.quiz.id, quizId)).limit(1);
return quiz || null;
}
export async function createQuiz(data: TNewQuiz): Promise<TQuiz> {
const [quiz] = await db.insert(schema.quiz).values(data).returning();
return quiz;
}
export async function updateQuiz(quizId: string, data: Partial<TNewQuiz>): Promise<TQuiz> {
const [quiz] = await db
.update(schema.quiz)
.set({ ...data, updatedAt: new Date().toISOString() })
.where(eq(schema.quiz.id, quizId))
.returning();
return quiz;
}
export async function deleteQuiz(quizId: string): Promise<void> {
await db.delete(schema.quiz).where(eq(schema.quiz.id, quizId));
}