mirror of
https://github.com/penpot/penpot.git
synced 2025-05-18 17:16:17 +02:00
Split project and page repository functions in different namespaces.
This commit is contained in:
parent
124366cbce
commit
6fdc0c0fd6
4 changed files with 58 additions and 34 deletions
|
@ -7,15 +7,16 @@
|
||||||
(ns uxbox.repo
|
(ns uxbox.repo
|
||||||
"A main interface for access to remote resources."
|
"A main interface for access to remote resources."
|
||||||
(:refer-clojure :exclude [do])
|
(:refer-clojure :exclude [do])
|
||||||
(:require [uxbox.repo.core :as urc]
|
(:require [uxbox.repo.core :refer (-do)]
|
||||||
[uxbox.repo.auth]
|
[uxbox.repo.auth]
|
||||||
[uxbox.repo.projects]
|
[uxbox.repo.projects]
|
||||||
|
[uxbox.repo.pages]
|
||||||
[beicon.core :as rx]))
|
[beicon.core :as rx]))
|
||||||
|
|
||||||
(defn do
|
(defn do
|
||||||
"Perform a side effectfull action accesing
|
"Perform a side effectfull action accesing
|
||||||
remote resources."
|
remote resources."
|
||||||
([type]
|
([type]
|
||||||
(urc/-do type nil))
|
(-do type nil))
|
||||||
([type data]
|
([type data]
|
||||||
(urc/-do type data)))
|
(-do type data)))
|
||||||
|
|
|
@ -65,10 +65,11 @@
|
||||||
(->> (http/send! request)
|
(->> (http/send! request)
|
||||||
(rx/from-promise)
|
(rx/from-promise)
|
||||||
(rx/map conditional-decode)
|
(rx/map conditional-decode)
|
||||||
(rx/mapcat handle-http-status)
|
(rx/mapcat handle-http-status))))
|
||||||
(rx/tap #(println "tt:" %)))))
|
|
||||||
;; "tt: "))))
|
|
||||||
|
|
||||||
(defmulti -do
|
(defmulti -do
|
||||||
(fn [type data] type))
|
(fn [type data] type))
|
||||||
|
|
||||||
|
(defmethod -do :default
|
||||||
|
[type data]
|
||||||
|
(throw (ex-info (str "No implementation found for " type) {:data data})))
|
||||||
|
|
50
src/uxbox/repo/pages.cljs
Normal file
50
src/uxbox/repo/pages.cljs
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
;; This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
;;
|
||||||
|
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||||
|
|
||||||
|
(ns uxbox.repo.pages
|
||||||
|
"A main interface for access to remote resources."
|
||||||
|
(:require [beicon.core :as rx]
|
||||||
|
[uxbox.repo.core :refer (-do url send!)]
|
||||||
|
[uxbox.state :as ust]))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Login
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(defmethod -do :fetch/pages
|
||||||
|
[type data]
|
||||||
|
(send! {:url (str url "/pages") :method :get}))
|
||||||
|
|
||||||
|
(defmethod -do :fetch/pages-by-project
|
||||||
|
[type {:keys [project] :as params}]
|
||||||
|
(let [url (str url "/projects/" project "/pages")]
|
||||||
|
(send! {:method :get :url url})))
|
||||||
|
|
||||||
|
(defmethod -do :delete/page
|
||||||
|
[_ id]
|
||||||
|
(let [url (str url "/pages/" id)]
|
||||||
|
(send! {:url url :method :delete})))
|
||||||
|
|
||||||
|
(defmethod -do :create/page
|
||||||
|
[type {:keys [id] :as data}]
|
||||||
|
(let [params {:url (str url "/pages")
|
||||||
|
:method :post
|
||||||
|
:body data}]
|
||||||
|
(send! params)))
|
||||||
|
|
||||||
|
(defmethod -do :update/page
|
||||||
|
[type {:keys [id] :as data}]
|
||||||
|
(let [params {:url (str url "/pages/" id)
|
||||||
|
:method :put
|
||||||
|
:body data}]
|
||||||
|
(send! params)))
|
||||||
|
|
||||||
|
(defmethod -do :update/page-metadata
|
||||||
|
[type {:keys [id] :as data}]
|
||||||
|
(let [params {:url (str url "/pages/" id "/metadata")
|
||||||
|
:method :put
|
||||||
|
:body data}]
|
||||||
|
(send! params)))
|
|
@ -19,15 +19,6 @@
|
||||||
(let [url (str url "/projects")]
|
(let [url (str url "/projects")]
|
||||||
(send! {:url url :method :get})))
|
(send! {:url url :method :get})))
|
||||||
|
|
||||||
(defmethod -do :fetch/pages
|
|
||||||
[type data]
|
|
||||||
(send! {:url (str url "/pages") :method :get}))
|
|
||||||
|
|
||||||
(defmethod -do :fetch/pages-by-project
|
|
||||||
[type {:keys [project] :as params}]
|
|
||||||
(let [url (str url "/projects/" project "/pages")]
|
|
||||||
(send! {:method :get :url url})))
|
|
||||||
|
|
||||||
(defmethod -do :create/project
|
(defmethod -do :create/project
|
||||||
[_ data]
|
[_ data]
|
||||||
(let [params {:url (str url "/projects")
|
(let [params {:url (str url "/projects")
|
||||||
|
@ -39,22 +30,3 @@
|
||||||
[_ id]
|
[_ id]
|
||||||
(let [url (str url "/projects/" id)]
|
(let [url (str url "/projects/" id)]
|
||||||
(send! {:url url :method :delete})))
|
(send! {:url url :method :delete})))
|
||||||
|
|
||||||
(defmethod -do :delete/page
|
|
||||||
[_ id]
|
|
||||||
(let [url (str url "/pages/" id)]
|
|
||||||
(send! {:url url :method :delete})))
|
|
||||||
|
|
||||||
(defmethod -do :create/page
|
|
||||||
[type {:keys [id] :as data}]
|
|
||||||
(let [params {:url (str url "/pages")
|
|
||||||
:method :post
|
|
||||||
:body data}]
|
|
||||||
(send! params)))
|
|
||||||
|
|
||||||
(defmethod -do :update/page
|
|
||||||
[type {:keys [id] :as data}]
|
|
||||||
(let [params {:url (str url "/pages/" id)
|
|
||||||
:method :put
|
|
||||||
:body data}]
|
|
||||||
(send! params)))
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue