queries.clj 763 B

12345678910111213141516171819202122
  1. (ns hello.handler.queries
  2. (:require [integrant.core :as ig]
  3. [ataraxy.response :as response]
  4. [hello.boundary.world-db :as world-db]))
  5. ; taken from the luminus sample
  6. (defn query-count
  7. "Parse provided string value of query count, clamping values to between 1 and 500."
  8. [^String queries]
  9. (let [n ^long (try (Integer/parseInt queries)
  10. (catch Exception _ 1))] ; default to 1 on parse failure
  11. (cond
  12. (< ^long n 1) 1
  13. (> ^long n 500) 500
  14. :else n)))
  15. (defmethod ig/init-key :hello.handler/queries [_ {:keys [db]}]
  16. (fn [request]
  17. [::response/ok
  18. (let [queries (get-in request [:params :queries] "1")
  19. num (query-count queries)]
  20. (world-db/make-multiple-queries db num))]))