feat: add timer CRUD and DML helpers

This commit is contained in:
Arduinum
2026-06-04 22:12:01 +03:00
parent 79e87dbbe8
commit 15fd9ae275
2 changed files with 57 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
import { QueryResult } from "@tauri-apps/plugin-sql";
import { getDb } from "@/db/initDb";
import { SELECT_TIMERS, SELECT_TIMER } from "@/db/dml/timerDML";
import { SELECT_TIMERS, SELECT_TIMER, INSERT_TIMER, UPDATE_TIMER, DELETE_TIMER } from "@/db/dml/timerDML";
import { TimersRow, TimerRow } from "@/types/timerType";
@@ -9,8 +10,58 @@ export async function getTimers(): Promise<TimersRow[]> {
return await db.select<TimersRow[]>(SELECT_TIMERS);
}
/* Получает таймер по его id **/
/** Получает таймер по его id */
export async function getTimer(TimerId: number): Promise<TimerRow> {
const db = await getDb();
return await db.select<TimerRow>(SELECT_TIMER, [TimerId]);
const rows = await db.select<TimerRow[]>(SELECT_TIMER, [TimerId]);
if (!Array.isArray(rows) || rows.length === 0) {
throw new Error('Таймер не найден');
}
return rows[0];
}
/** Создаёт новый таймер */
export async function createTimer(
title: string,
pomodoroTime: number,
breakTime: number,
breakLongTime: number,
countPomodoro: number
): Promise<QueryResult> {
const db = await getDb();
return await db.execute(INSERT_TIMER, [
title,
pomodoroTime,
breakTime,
breakLongTime,
countPomodoro
]);
}
/** Обновляет таймер */
export async function updateTimer(
TimerId: number,
title: string,
pomodoroTime: number,
breakTime: number,
breakLongTime: number,
countPomodoro: number
): Promise<QueryResult> {
const db = await getDb();
return await db.execute(UPDATE_TIMER, [
title,
pomodoroTime,
breakTime,
breakLongTime,
countPomodoro,
TimerId
]);
}
/** Удаляет таймер */
export async function deleteTimer(TimerId: number): Promise<QueryResult> {
const db = await getDb();
return await db.execute(DELETE_TIMER, [TimerId]);
}