From bb24bf9aa1985ff83d35ead9889aeb3aa46192a8 Mon Sep 17 00:00:00 2001 From: kilyabin <65072190+kilyabin@users.noreply.github.com> Date: Mon, 9 Mar 2026 23:43:58 +0400 Subject: [PATCH] fix(db): added access log and small addition to systemd service --- src/pages/api/admin/settings.ts | 11 ++++++++++- src/shared/data/database.ts | 15 ++++++++++++--- src/shared/data/settings-loader.ts | 4 +++- systemd/kspguti-schedule.service | 2 +- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/pages/api/admin/settings.ts b/src/pages/api/admin/settings.ts index 23fffe6..382a53c 100644 --- a/src/pages/api/admin/settings.ts +++ b/src/pages/api/admin/settings.ts @@ -22,10 +22,19 @@ async function handler( // Сначала загружаем текущие настройки из базы данных clearSettingsCache() const currentSettings = loadSettings(true) - + // Обновление настроек const { weekNavigationEnabled, showAddGroupButton, showTeachersButton, vacationModeEnabled, vacationModeContent, debug } = req.body + console.log('[Settings API] Received settings update:', { + weekNavigationEnabled, + showAddGroupButton, + showTeachersButton, + vacationModeEnabled, + vacationModeContent, + hasDebug: debug !== undefined + }) + if (typeof weekNavigationEnabled !== 'boolean') { res.status(400).json({ error: 'weekNavigationEnabled must be a boolean' }) return diff --git a/src/shared/data/database.ts b/src/shared/data/database.ts index 78b4ff5..4f13e46 100644 --- a/src/shared/data/database.ts +++ b/src/shared/data/database.ts @@ -419,6 +419,8 @@ export function getSettings(): AppSettings { export function updateSettings(settings: AppSettings): void { const database = getDatabase() + console.log('[Database] updateSettings called, DB path:', DB_PATH) + const defaultSettings: AppSettings = { weekNavigationEnabled: false, showAddGroupButton: true, @@ -441,9 +443,16 @@ export function updateSettings(settings: AppSettings): void { ...settingsWithoutDebug } - database - .prepare('INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)') - .run('app', JSON.stringify(mergedSettings)) + console.log('[Database] Saving merged settings:', mergedSettings) + + try { + const stmt = database.prepare('INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)') + const result = stmt.run('app', JSON.stringify(mergedSettings)) + console.log('[Database] Settings save result:', result) + } catch (error) { + console.error('[Database] Error executing SQL:', error) + throw error + } } // ==================== Функции для работы с паролем ==================== diff --git a/src/shared/data/settings-loader.ts b/src/shared/data/settings-loader.ts index 9a53790..9d92073 100644 --- a/src/shared/data/settings-loader.ts +++ b/src/shared/data/settings-loader.ts @@ -62,12 +62,14 @@ export function loadSettings(forceRefresh: boolean = false): AppSettings { */ export function saveSettings(settings: AppSettings): void { try { + console.log('[Settings] Saving settings to database:', settings) updateSettingsInDB(settings) + console.log('[Settings] Settings saved successfully') // Сбрасываем кеш и timestamp cachedSettings = null cacheTimestamp = 0 } catch (error) { - console.error('Error saving settings to database:', error) + console.error('[Settings] Error saving settings to database:', error) throw new Error('Failed to save settings') } } diff --git a/systemd/kspguti-schedule.service b/systemd/kspguti-schedule.service index 081903b..f900d8b 100644 --- a/systemd/kspguti-schedule.service +++ b/systemd/kspguti-schedule.service @@ -32,7 +32,7 @@ NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/opt/kspguti-schedule +ReadWritePaths=/opt/kspguti-schedule /opt/kspguti-schedule/db [Install] WantedBy=multi-user.target