diff --git a/src/uxbox/main/repo/pages.cljs b/src/uxbox/main/repo/pages.cljs index ca4df1243..b2973fbcb 100644 --- a/src/uxbox/main/repo/pages.cljs +++ b/src/uxbox/main/repo/pages.cljs @@ -11,13 +11,13 @@ [uxbox.main.repo.impl :refer (request send!)] [uxbox.util.transit :as t])) -(defn- decode-page +(defn decode-page [{:keys [data options] :as page}] (merge page (when data {:data (t/decode data)}) (when options {:options (t/decode options)}))) -(defn- decode-payload +(defn decode-payload [{:keys [payload] :as rsp}] (if (sequential? payload) (assoc rsp :payload (mapv decode-page payload)) diff --git a/src/uxbox/main/repo/projects.cljs b/src/uxbox/main/repo/projects.cljs index 5dd68b4f0..34ebe9bb6 100644 --- a/src/uxbox/main/repo/projects.cljs +++ b/src/uxbox/main/repo/projects.cljs @@ -8,6 +8,7 @@ "A main interface for access to remote resources." (:require [beicon.core :as rx] [uxbox.config :refer (url)] + [uxbox.main.repo.pages :as pages] [uxbox.main.repo.impl :refer (request send!)])) (defmethod request :fetch/projects @@ -23,7 +24,11 @@ (defmethod request :fetch/project-by-token [_ token] (let [url (str url "/projects-by-token/" token)] - (send! {:url url :method :get}))) + (->> (send! {:url url :method :get}) + (rx/map (fn [response] + (update-in response [:payload :pages] + (fn [pages] + (mapv pages/decode-page pages)))))))) (defmethod request :create/project [_ data]