Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
changed assertion Error to Exception
  • Loading branch information
ibarrick committed May 5, 2016
commit 5d6002c6ce698a133f754d25e5ff32e9c57c50b5
15 changes: 8 additions & 7 deletions src/yesql/generate.clj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
[yesql.util :refer [create-root-var]]
[yesql.types :refer [map->Query]]
[yesql.statement-parser :refer [tokenize]])
(:import [yesql.types Query]))
(:import [yesql.types Query])
(import java.lang.IllegalArgumentException))

(def in-list-parameter?
"Check if a type triggers IN-list expansion."
Expand Down Expand Up @@ -38,17 +39,17 @@
actual-keys (set (keys (dissoc initial-args :?)))
actual-positional-count (count (:? initial-args))
missing-keys (set/difference expected-keys actual-keys)]
(assert (empty? missing-keys)
(format "Query argument mismatch.\nExpected keys: %s\nActual keys: %s\nMissing keys: %s"
(if-not (empty? missing-keys)
(throw (IllegalArgumentException. (format "Query argument mismatch.\nExpected keys: %s\nActual keys: %s\nMissing keys: %s"
(str (seq expected-keys))
(str (seq actual-keys))
(str (seq missing-keys))))
(assert (= expected-positional-count actual-positional-count)
(format (join "\n"
(str (seq missing-keys))))))
(if-not (= expected-positional-count actual-positional-count)
(throw (IllegalArgumentException. (format (join "\n"
["Query argument mismatch."
"Expected %d positional parameters. Got %d."
"Supply positional parameters as {:? [...]}"])
expected-positional-count actual-positional-count))
expected-positional-count actual-positional-count))))
(let [[final-query final-parameters consumed-args]
(reduce (fn [[query parameters args] token]
(cond
Expand Down