1
0
mirror of https://git.sr.ht/~cadence/bibliogram synced 2025-07-05 19:38:25 +00:00
bibliogram/src/site/api/utils/getsettings.js
2020-05-06 03:35:18 +12:00

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