about summary refs log tree commit diff
path: root/users/grfn/bbbg/src/bbbg/handlers/events.clj
blob: 653c8ab45d3d2d7e3873923918db9c047f980110 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
(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]]
   [bbbg.views.flash :as flash]))

(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
            (flash/add-flash {:flash/type :success
                              :flash/message "Event Created"}))))))