mirror of
https://git.sr.ht/~cadence/bibliogram
synced 2025-07-05 19:38:25 +00:00
33 lines
867 B
JavaScript
33 lines
867 B
JavaScript
const {parse} = require("cookie")
|
|
|
|
const constants = require("../../../lib/constants")
|
|
const db = require("../../../lib/db")
|
|
|
|
function addDefaults(input = {}) {
|
|
const result = {}
|
|
for (const setting of constants.user_settings) {
|
|
if (input[setting.name] !== undefined) {
|
|
result[setting.name] = input[setting.name]
|
|
} else {
|
|
if (setting.boolean) {
|
|
result[setting.name] = +(setting.default !== "")
|
|
} else {
|
|
result[setting.name] = setting.default
|
|
}
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
|
|
function getSettings(req) {
|
|
if (!req.headers.cookie) return addDefaults()
|
|
const cookie = parse(req.headers.cookie)
|
|
const settings = cookie.settings
|
|
if (!settings) return addDefaults()
|
|
const row = db.prepare("SELECT * FROM UserSettings WHERE token = ?").get(settings)
|
|
if (!row) return addDefaults()
|
|
return addDefaults(row)
|
|
}
|
|
|
|
module.exports.getSettings = getSettings
|