mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-21 22:31:46 +00:00
45 lines
2.0 KiB
TypeScript
45 lines
2.0 KiB
TypeScript
import { db, canAccessTrip } from '../db/database';
|
|
import { DayNote } from '../types';
|
|
|
|
export function verifyTripAccess(tripId: string | number, userId: number) {
|
|
return canAccessTrip(tripId, userId);
|
|
}
|
|
|
|
export function listNotes(dayId: string | number, tripId: string | number) {
|
|
return db.prepare(
|
|
'SELECT * FROM day_notes WHERE day_id = ? AND trip_id = ? ORDER BY sort_order ASC, created_at ASC'
|
|
).all(dayId, tripId);
|
|
}
|
|
|
|
export function dayExists(dayId: string | number, tripId: string | number) {
|
|
return db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(dayId, tripId);
|
|
}
|
|
|
|
export function createNote(dayId: string | number, tripId: string | number, text: string, time?: string, icon?: string, sort_order?: number) {
|
|
const result = db.prepare(
|
|
'INSERT INTO day_notes (day_id, trip_id, text, time, icon, sort_order) VALUES (?, ?, ?, ?, ?, ?)'
|
|
).run(dayId, tripId, text.trim(), time || null, icon || '\uD83D\uDCDD', sort_order ?? 9999);
|
|
return db.prepare('SELECT * FROM day_notes WHERE id = ?').get(result.lastInsertRowid);
|
|
}
|
|
|
|
export function getNote(id: string | number, dayId: string | number, tripId: string | number) {
|
|
return db.prepare('SELECT * FROM day_notes WHERE id = ? AND day_id = ? AND trip_id = ?').get(id, dayId, tripId) as DayNote | undefined;
|
|
}
|
|
|
|
export function updateNote(id: string | number, current: DayNote, fields: { text?: string; time?: string; icon?: string; sort_order?: number }) {
|
|
db.prepare(
|
|
'UPDATE day_notes SET text = ?, time = ?, icon = ?, sort_order = ? WHERE id = ?'
|
|
).run(
|
|
fields.text !== undefined ? fields.text.trim() : current.text,
|
|
fields.time !== undefined ? fields.time : current.time,
|
|
fields.icon !== undefined ? fields.icon : current.icon,
|
|
fields.sort_order !== undefined ? fields.sort_order : current.sort_order,
|
|
id
|
|
);
|
|
return db.prepare('SELECT * FROM day_notes WHERE id = ?').get(id);
|
|
}
|
|
|
|
export function deleteNote(id: string | number) {
|
|
db.prepare('DELETE FROM day_notes WHERE id = ?').run(id);
|
|
}
|