Skip to content

Instantly share code, notes, and snippets.

@swlkr
Last active January 24, 2018 07:56
Show Gist options
  • Save swlkr/ce3f903369d256f31241dfa3ddcdd2f8 to your computer and use it in GitHub Desktop.
Save swlkr/ce3f903369d256f31241dfa3ddcdd2f8 to your computer and use it in GitHub Desktop.
(ns your-proj.controllers.posts-controller
(:require [coast.core :as coast]
[your-proj.models.posts :as posts]
[your-proj.views.posts :as views.posts]))
(defn index [request]
(let [posts (posts/all)]
(views.posts/index (assoc request :posts posts))))
(defn show [request]
(let [id (get-in request [:params :id])
post (posts/find-by-id id)]
(views.posts/show (assoc request :post post))))
(defn fresh [request]
(views.posts/fresh request))
(defn create [request]
(let [params (get request :params)
[post error] (coast/try! (posts/insert params))]
(if (nil? error)
(coast/redirect "/posts")
(fresh (assoc request :error error)))))
(defn edit [request]
(let [id (get-in request [:params :id])
post (posts/find-by-id id)]
(views.posts/edit (assoc request :post post))))
(defn change [request]
(let [params (get request :params)
id (get params :id)
[post error] (coast/try! (posts/update id params))]
(if (nil? error)
(coast/redirect "/posts")
(edit (assoc request :error error)))))
(defn delete [request]
(let [id (get-in request [:params :id])
[post error] (coast/try! (posts/delete id))]
(coast/redirect "/" error)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment