aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/server/repositories/review-log.ts
blob: c8950d65b4416a0bdb7cc586ef99bd49984a0aee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { db } from "../db/index.js";
import { reviewLogs } from "../db/schema.js";
import type { ReviewLog, ReviewLogRepository } from "./types.js";

export const reviewLogRepository: ReviewLogRepository = {
	async create(data: {
		cardId: string;
		userId: string;
		rating: number;
		state: number;
		scheduledDays: number;
		elapsedDays: number;
		durationMs?: number | null;
	}): Promise<ReviewLog> {
		const [reviewLog] = await db
			.insert(reviewLogs)
			.values({
				cardId: data.cardId,
				userId: data.userId,
				rating: data.rating,
				state: data.state,
				scheduledDays: data.scheduledDays,
				elapsedDays: data.elapsedDays,
				durationMs: data.durationMs ?? null,
			})
			.returning();
		if (!reviewLog) {
			throw new Error("Failed to create review log");
		}
		return reviewLog;
	},
};