Fix #4 by adding transact

`with-transaction` now delegates to `transact` which in turn delegates 
to `p/-transact`.
This commit is contained in:
Sean Corfield 2019-04-01 23:43:10 -07:00
parent be9e4a6a55
commit a76189d9c8

View file

@ -156,6 +156,16 @@
([connectable sql-params opts] ([connectable sql-params opts]
(rs/execute-one! connectable sql-params opts))) (rs/execute-one! connectable sql-params opts)))
(defn transact
"Given a connectable object and a function (taking a Connection),
execute the function on a new connection in a transactional manner.
An options map may be provided before the function."
([connectable f]
(p/-transact connectable f {}))
([connectable opts f]
(p/-transact connectable f opts)))
(defmacro with-transaction (defmacro with-transaction
"Given a connectable object, gets a new connection and binds it to 'sym', "Given a connectable object, gets a new connection and binds it to 'sym',
then executes the 'body' in that context, committing any changes if the body then executes the 'body' in that context, committing any changes if the body
@ -167,7 +177,7 @@
* :read-only -- true / false, * :read-only -- true / false,
* :rollback-only -- true / false." * :rollback-only -- true / false."
[[sym connectable opts] & body] [[sym connectable opts] & body]
`(p/-transact ~connectable (fn [~sym] ~@body) ~opts)) `(transact ~connectable ~opts (fn [~sym] ~@body)))
(defn insert! (defn insert!
"Given a connectable object, a table name, and a data hash map, inserts the "Given a connectable object, a table name, and a data hash map, inserts the