Skip to content

Instantly share code, notes, and snippets.

@olivergeorge
Created December 30, 2015 04:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save olivergeorge/5920ae83952174366147 to your computer and use it in GitHub Desktop.
Save olivergeorge/5920ae83952174366147 to your computer and use it in GitHub Desktop.
(ns stripboard.db
(:require [korma.db :refer [sqlite3 defdb]]
[korma.core :as korma]
[om.next.server :as om]))
(defdb db (sqlite3 {}))
(defmulti read-table (fn [_ k _] k))
(defmethod read-table :default
[{:keys [db query]} key {:keys [limit offset order dir where]}]
{:value (korma/select
(cond-> (korma/select* key)
query (#(apply korma/fields % query))
where (korma/where where)
limit (korma/limit limit)
offset (korma/offset offset)
order (korma/order order dir)))})
(def db-parser (om/parser {:read read-table}))
(clojure.pprint/pprint
(db-parser {:db db} '[({:jurisdiction [:id :name]}
{:limit 2
:offset 0
:order :id
:where {:id [> 1]}
:dir :DESC})]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment