Просмотр исходного кода

Write out the todo-list after each modifying operation.

Lucas Stadler лет назад: 13
Родитель
Сommit
83fcde63ca
1 измененных файлов с 10 добавлено и 4 удалено
  1. 10 4
      clj/shame.clj

+ 10 - 4
clj/shame.clj

@ -67,6 +67,9 @@
67 67
(def ^:dynamic *shaming*
68 68
  (ref nil))
69 69
70
(def ^:dynamic *shaming-file*
71
  "self.todo.json")
72
70 73
;; "backend"
71 74
72 75
(defn read-shame [filename]
@ -78,7 +81,7 @@
78 81
;; web service
79 82
80 83
(dosync
81
  (ref-set *shaming* (read-shame "self.todo.json")))
84
  (ref-set *shaming* (read-shame *shaming-file*)))
82 85
83 86
(defn take-n [start amount coll]
84 87
  (take amount (drop start coll)))
@ -97,7 +100,8 @@
97 100
(defroutes shame-api
98 101
  (GET "/" [] (response @*shaming*))
99 102
  (POST "/" [item] (dosync (ref-set *shaming*
100
                                      (add-item item @*shaming*))))
103
                                      (add-item item @*shaming*)))
104
        (write-shame *shaming-file* @*shaming*))
101 105
  (GET "/current" [start limit]
102 106
       (response
103 107
         (take-n (int-param start) (int-param limit 10) (:current @*shaming*))))
@ -108,10 +112,12 @@
108 112
                                         :name item-name)))
109 113
  (PUT "/:item-name" [item-name :as {params :params}] ; changes should be in the body?
110 114
       (dosync (ref-set *shaming*
111
                        (change-item item-name (filter-keys params [:name])  @*shaming*))))
115
                        (change-item item-name (filter-keys params [:name])  @*shaming*)))
116
       (write-shame *shaming-file* @*shaming*))
112 117
  (DELETE "/:item-name" [item-name status]
113 118
          (dosync (ref-set *shaming*
114
                           (close-item item-name (or status "failed") @*shaming*))))
119
                           (close-item item-name (or status "failed") @*shaming*)))
120
          (write-shame *shaming-file* @*shaming*))
115 121
  (route/not-found "404 - Alternate Reality Monsters"))
116 122
117 123
(defn render-item [item]