ST
(defn sql-fn-body
"Read SQL query from resource file for passing to `def-db-fns-from-string`.
The name of HugSQL function is the same as file name."
[name]
(let [path (str sql-rc-path name ".sql")
body (slurp (or
(io/resource path)
(throw (ex-info (print-str "Missing SQL query file" (pr-str path))
{:name name :resource-path path}))))]
(str "-- :name " name "\r\n" body)))
(defmacro declare-fn
"Declare single HugSQL function for symbol `sym`.
The function definition string is loaded from resource file."
[sym]
`(hugsql/def-db-fns-from-string (sql-fn-body '~sym) def-db-fns-opts))