diff options
Diffstat (limited to 'src/chef/components')
-rw-r--r-- | src/chef/components/search.clj | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/chef/components/search.clj b/src/chef/components/search.clj deleted file mode 100644 index e428a23..0000000 --- a/src/chef/components/search.clj +++ /dev/null @@ -1,49 +0,0 @@ -(ns chef.components.search - (:require [chef.database :as cdb] - [chef.utils :as cutils] - [clojure.string :as cstr] - [hiccup2.core :as html] - [honey.sql :as sql] - [next.jdbc :as jdbc] - [ring.util.response :as ruresp])) - -(defn render [query category] - [:table - [:tr - [:th "Rezept"] - [:th "Kategorie"]] - (for [recipe (jdbc/execute! @cdb/db - (sql/format {:select [:*] - :from [:recipes]})) - :let [recipe-category (->> {:select [:*] - :from [:categories] - :where [:= :id (:recipes/category recipe)]} - sql/format - (jdbc/execute! @cdb/db) - first)]] - (when (or (= category -1) - (and (cstr/includes? (-> recipe - :recipes/title - cstr/lower-case) - query) - (some #(= (:categories/id %) category) - (cutils/category-parents recipe-category)))) - [:tr - [:td - [:b [:a {:href (str "/recipes/" (:recipes/id recipe))} (:recipes/title recipe)]]] - [:td - (cutils/category-path (->> {:select [:*] - :from [:categories] - :where [:= :id (:recipes/category recipe)]} - sql/format - (jdbc/execute! @cdb/db) - first))]]))]) - -(defn handler [req] - (if-let [query (get-in req [:params "query"])] - (-> (render query (try (Integer/parseInt (get-in req [:params "category"])) - (catch Exception _ -1))) - html/html - str - ruresp/response) - (ruresp/bad-request "No search query provide."))) |