mirror of
https://github.com/khoaliber/dockhand.git
synced 2026-03-03 13:18:56 +00:00
62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
/**
|
|
* Schedule Settings API - Get/set schedule display preferences
|
|
*
|
|
* GET /api/schedules/settings - Get current display settings
|
|
* PUT /api/schedules/settings - Update display settings
|
|
*
|
|
* Note: Data retention settings are now managed in /api/settings/general
|
|
*/
|
|
|
|
import { json } from '@sveltejs/kit';
|
|
import type { RequestHandler } from './$types';
|
|
import { getSetting, setSetting } from '$lib/server/db';
|
|
import { authorize } from '$lib/server/authorize';
|
|
|
|
// Setting key for hide system jobs preference
|
|
const getHideSystemJobsKey = (userId?: number) =>
|
|
userId ? `user_${userId}_schedules_hide_system_jobs` : 'schedules_hide_system_jobs';
|
|
|
|
export const GET: RequestHandler = async ({ cookies }) => {
|
|
try {
|
|
const auth = await authorize(cookies);
|
|
const userId = auth.isAuthenticated ? auth.user?.id : undefined;
|
|
|
|
// Get user-specific setting, fallback to global
|
|
let hideSystemJobs = await getSetting(getHideSystemJobsKey(userId));
|
|
if (hideSystemJobs === null && userId) {
|
|
hideSystemJobs = await getSetting(getHideSystemJobsKey());
|
|
}
|
|
if (hideSystemJobs === null) {
|
|
hideSystemJobs = false; // Default to visible
|
|
}
|
|
|
|
return json({ hideSystemJobs });
|
|
} catch (error: any) {
|
|
console.error('Failed to get schedule settings:', error);
|
|
return json({ error: error.message }, { status: 500 });
|
|
}
|
|
};
|
|
|
|
export const PUT: RequestHandler = async ({ request, cookies }) => {
|
|
try {
|
|
const auth = await authorize(cookies);
|
|
const userId = auth.isAuthenticated ? auth.user?.id : undefined;
|
|
|
|
const body = await request.json();
|
|
const { hideSystemJobs } = body;
|
|
|
|
if (hideSystemJobs !== undefined) {
|
|
if (typeof hideSystemJobs !== 'boolean') {
|
|
return json({ error: 'Invalid hideSystemJobs (must be boolean)' }, { status: 400 });
|
|
}
|
|
// Save user-specific preference
|
|
await setSetting(getHideSystemJobsKey(userId), hideSystemJobs);
|
|
}
|
|
|
|
return json({ success: true, hideSystemJobs });
|
|
} catch (error: any) {
|
|
console.error('Failed to update schedule settings:', error);
|
|
return json({ error: error.message }, { status: 500 });
|
|
}
|
|
};
|