src/settings.lisp
(defpackage murja.settings
(:import-from :com.inuoe.jzon :stringify :parse)
(:export :get-settings :update-setting)
(:use :cl))
(in-package :murja.settings)
(defun get-settings ()
(reduce (lambda (acc pair)
(destructuring-bind (k v) pair
(setf (gethash k acc) (com.inuoe.jzon:parse v))
acc))
(postmodern:query "SELECT key, value FROM blog.Settings")
:initial-value (make-hash-table :test 'equal)))
(defun update-setting (k v)
(postmodern:execute "INSERT INTO blog.Settings (key, value) VALUES ($1, $2) ON CONFLICT (key) DO UPDATE SET value = excluded.value" k (stringify v)))