summaryrefslogtreecommitdiff
path: root/src/mulk/benki/db.clj
blob: b45ec308600b9b27614766bcac79ca92750d8979 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(ns mulk.benki.db
  (:refer-clojure)
  (:use [mulk.benki config])
  (:require [clojure.java.jdbc :as sql]))


(defn ^:private db []
  (:database @benki-config))

(defn call-with-db [thunk]
  (sql/with-connection (db)
    (thunk)))

(defmacro with-db [& body]
  `(call-with-db (fn [] ~@body)))

(defmacro with-dbt [& body]
  `(call-with-db (fn [] (sql/transaction ~@body))))

(defmacro query [query-string & params]
  `(sql/with-query-results results# ~(into [] (concat [query-string] params))
     (into '() results#)))

(defmacro query1 [query-string & params]
  `(first (query ~query-string ~@params)))