add routes for basic list CRUD operations
This commit is contained in:
parent
962a3624b7
commit
a71d4f541b
|
@ -21,6 +21,7 @@
|
|||
[mtgcoll.routes.main-page :refer [main-page-routes]]
|
||||
[mtgcoll.routes.images :refer [image-routes]]
|
||||
[mtgcoll.routes.collection :refer [collection-routes]]
|
||||
[mtgcoll.routes.lists :refer [list-routes]]
|
||||
[mtgcoll.routes.auth :refer [auth-routes]]))
|
||||
|
||||
(defn init
|
||||
|
@ -50,6 +51,7 @@
|
|||
(-> (routes
|
||||
auth-routes
|
||||
collection-routes
|
||||
list-routes
|
||||
image-routes
|
||||
main-page-routes
|
||||
(route/resources "/")
|
||||
|
|
45
src/mtgcoll/models/lists.clj
Normal file
45
src/mtgcoll/models/lists.clj
Normal file
|
@ -0,0 +1,45 @@
|
|||
(ns mtgcoll.models.lists
|
||||
(:require
|
||||
[views.sql.core :refer [vexec! with-view-transaction]]
|
||||
[mtgcoll.db :refer [db]]
|
||||
[mtgcoll.views.core :refer [view-system]]))
|
||||
|
||||
(defn add-list!
|
||||
[name public? requires-qualities?]
|
||||
(vexec! view-system db
|
||||
["insert into lists
|
||||
(name, is_public, require_qualities)
|
||||
values
|
||||
(?, ?, ?)"
|
||||
(str name) (boolean public?) (boolean requires-qualities?)]))
|
||||
|
||||
(defn remove-list!
|
||||
[list-id]
|
||||
(vexec! view-system db
|
||||
["delete from lists
|
||||
where id = ?"
|
||||
(int list-id)]))
|
||||
|
||||
(defn update-list-name!
|
||||
[list-id name]
|
||||
(vexec! view-system db
|
||||
["update lists
|
||||
set name = ?
|
||||
where id = ?"
|
||||
(str name) (int list-id)]))
|
||||
|
||||
(defn update-list-note!
|
||||
[list-id note]
|
||||
(vexec! view-system db
|
||||
["update lists
|
||||
set notes = ?
|
||||
where id = ?"
|
||||
(str note) (int list-id)]))
|
||||
|
||||
(defn update-list-visibility!
|
||||
[list-id public?]
|
||||
(vexec! view-system db
|
||||
["update lists
|
||||
set is_public = ?
|
||||
where id = ?"
|
||||
(boolean public?) (int list-id)]))
|
32
src/mtgcoll/routes/lists.clj
Normal file
32
src/mtgcoll/routes/lists.clj
Normal file
|
@ -0,0 +1,32 @@
|
|||
(ns mtgcoll.routes.lists
|
||||
(:require
|
||||
[compojure.core :refer [routes GET POST]]
|
||||
[webtools.response :as response]
|
||||
[webtools.routes.core :refer [wrap-middleware]]
|
||||
[mtgcoll.middleware :refer [wrap-authenticated]]
|
||||
[mtgcoll.models.lists :as lists]))
|
||||
|
||||
(def list-routes
|
||||
(wrap-middleware
|
||||
(routes
|
||||
(POST "/lists/add" [name public? requires-qualities? :as request]
|
||||
(lists/add-list! name public? requires-qualities?)
|
||||
(response/json {:status "ok"}))
|
||||
|
||||
(POST "/lists/remove" [list-id :as request]
|
||||
(lists/remove-list! list-id)
|
||||
(response/json {:status "ok"}))
|
||||
|
||||
(POST "/lists/update-name" [list-id name :as request]
|
||||
(lists/update-list-name! list-id name)
|
||||
(response/json {:status "ok"}))
|
||||
|
||||
(POST "/lists/update-note" [list-id note :as request]
|
||||
(lists/update-list-note! list-id note)
|
||||
(response/json {:status "ok"}))
|
||||
|
||||
(POST "/lists/update-visibility" [list-id public? :as request]
|
||||
(lists/update-list-visibility! list-id public?)
|
||||
(response/json {:status "ok"})))
|
||||
|
||||
(wrap-authenticated)))
|
Loading…
Reference in a new issue