breakoften/src/routes/timer/+page.server.ts

51 lines
1.3 KiB
TypeScript

import type { PageServerLoad } from "./$types"
import { db } from "$lib/server/database"
import type { User } from "$lib/index"
export const load: PageServerLoad = async (event) => {
if (!event.locals.user) {
return
}
let timer = await fetchTimer(event.locals.user)
return { timer }
}
async function fetchTimer(user: User) {
let timer = await db.timer.findUnique({ where: { user_id: user.id } })
if (!timer) {
await db.timer.create({
data: {
user_id: user.id,
},
})
}
return await db.timer.findUnique({ where: { user_id: user.id } })
}
export const actions = {
updateTimer: async ({ request, locals }) => {
const user = locals.user
const data = await request.formData()
const breakInterval = parseInt(data.get("break-interval"))
const miniBreakDuration = parseInt(data.get("mini-break-duration"))
const longBreakDuration = parseInt(data.get("long-break-duration"))
const soundEnabled = data.get("sound-enabled") === "true"
const notificationsEnabled = data.get("notifications-enabled") === "true"
await db.timer.update({
where: { user_id: user.id },
data: {
breakInterval,
miniBreakDuration,
longBreakDuration,
soundEnabled,
notificationsEnabled,
},
})
},
}