From de2fe77270dcf5f8250053e3b194e81d5044930a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 6 May 2016 21:07:02 +0300 Subject: [PATCH] Add support for new profile persistence. --- src/uxbox/repo/users.cljs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/uxbox/repo/users.cljs b/src/uxbox/repo/users.cljs index 16e0a6dc8c..162b747868 100644 --- a/src/uxbox/repo/users.cljs +++ b/src/uxbox/repo/users.cljs @@ -6,22 +6,31 @@ (ns uxbox.repo.users "A main interface for access to remote resources." - (:refer-clojure :exclude [do]) (:require [beicon.core :as rx] [uxbox.repo.core :refer (request url send!)] - [uxbox.state :as ust])) + [uxbox.util.transit :as t])) + +(defn- decode-payload + [{:keys [payload] :as rsp}] + (let [metadata (:metadata payload)] + (assoc rsp :payload + (assoc payload :metadata (t/decode metadata))))) (defmethod request :fetch/profile [type _] - (let [url (str url "/profile/me")] - (send! {:method :get :url url}))) + (let [url (str url "/profile/me") + params {:method :get :url url}] + (->> (send! params) + (rx/map decode-payload)))) (defmethod request :update/profile - [type data] - (let [params {:url (str url "/profile/me") + [type {:keys [metadata id] :as body}] + (let [body (assoc body :metadata (t/encode metadata)) + params {:url (str url "/profile/me") :method :put - :body data}] - (send! params))) + :body body}] + (->> (send! params) + (rx/map decode-payload)))) (defmethod request :update/password [type data]