about summary refs log tree commit diff
path: root/users/grfn/bbbg/src/bbbg/handlers/events.clj
diff options
context:
space:
mode:
Diffstat (limited to 'users/grfn/bbbg/src/bbbg/handlers/events.clj')
-rw-r--r--users/grfn/bbbg/src/bbbg/handlers/events.clj44
1 files changed, 44 insertions, 0 deletions
diff --git a/users/grfn/bbbg/src/bbbg/handlers/events.clj b/users/grfn/bbbg/src/bbbg/handlers/events.clj
new file mode 100644
index 0000000000..f42b7bea2c
--- /dev/null
+++ b/users/grfn/bbbg/src/bbbg/handlers/events.clj
@@ -0,0 +1,44 @@
+(ns bbbg.handlers.events
+  (:require
+   [bbbg.db :as db]
+   [bbbg.db.event :as db.event]
+   [bbbg.event :as event]
+   [bbbg.handlers.core :refer [page-response]]
+   [compojure.core :refer [context GET POST]]
+   [ring.util.response :refer [redirect]]))
+
+(defn events-index [events]
+  [:ul.events-list
+   (for [event events]
+     [:li (::event/date event)])])
+
+(defn event-form
+  ([] (event-form {}))
+  ([event]
+   [:form {:method "POST" :action "/events"}
+    [:div.form-group
+     [:label "Date"
+      [:input {:type "date"
+               :id "date"
+               :name "date"
+               :value (str (::event/date event))}]]]
+    [:div.form-group
+     [:input {:type "submit"
+              :value "Create Event"}]]]))
+
+(defn events-routes [{:keys [db]}]
+  (context "/events" []
+    (GET "/" []
+      (let [events (db/list db :event)]
+        (events-index events)))
+
+    (GET "/new" [date]
+      (page-response
+       {:title "New Event"}
+       (event-form {::event/date date})))
+
+    (POST "/" [date]
+      (let [event (db.event/create! db {::event/date date})]
+        (-> (str "/signup-forms/" (::event/id event))
+            redirect
+            (assoc-in [:flash :message] "Event Created"))))))