src/settings.lisp
(defpackage murja.settings
(:use :cl)
(:export :*settings* :get-settings))
(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)))
(defvar *settings* nil "A hashmap view of `select * from blog.settings`. If this variable is nil, wrap your route with @transaction middleware. If you setf keys here, remember to update db too with murja.settings:update-setting")