From 68479d26e2499962bc2e65b7ad158b44187c1e0a Mon Sep 17 00:00:00 2001 From: Andrew Suzuki Date: Thu, 9 Jun 2016 13:13:56 -0400 Subject: [PATCH] don't track progress if polling for user --- src/cljs/ulysses/config.cljs | 3 ++- src/cljs/ulysses/handlers.cljs | 12 ++++++------ src/cljs/ulysses/utils.cljs | 25 +++++++++++++++++++------ 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src/cljs/ulysses/config.cljs b/src/cljs/ulysses/config.cljs index d945f26..08bf468 100644 --- a/src/cljs/ulysses/config.cljs +++ b/src/cljs/ulysses/config.cljs @@ -25,7 +25,8 @@ (def api-hostname (if (or debug? (string/includes? hostname "staging")) - "http://ulysses-api-staging.core" + ; "http://ulysses-api-staging.core" + "http://localhost:8000" "http://ulysses-api-alpha.core")) (def api-endpoint (str api-hostname "/api")) diff --git a/src/cljs/ulysses/handlers.cljs b/src/cljs/ulysses/handlers.cljs index 4dda65e..1a78e5d 100644 --- a/src/cljs/ulysses/handlers.cljs +++ b/src/cljs/ulysses/handlers.cljs @@ -19,6 +19,7 @@ scroll-to request update-db-pagination + verify-user-poll-response debounce-request-grant-ops debounce-request-faculties-pool]])) @@ -87,7 +88,8 @@ (fn [db _] (request db [:login :poll] - :req-user? false + :require-user? false + :progress? false :handler #(dispatch [:receive-user-poll %]) ;; if server didn't respond or an error occurred, log out :error-handler #(dispatch [:receive-user-poll false])))) @@ -95,11 +97,9 @@ (register-handler :receive-user-poll (fn [db [_ response]] - (if-not (and (boolean? response) response) - ;; not logged in anymore, so nil the user - (assoc db :user nil) - ;; TODO request actual user - (assoc db :user true)))) + (assoc db :user + (when (verify-user-poll-response response) + (:user response))))) ;; ---------------------------------------------------------------------------- ;; raw data diff --git a/src/cljs/ulysses/utils.cljs b/src/cljs/ulysses/utils.cljs index 832e657..ce27bd3 100644 --- a/src/cljs/ulysses/utils.cljs +++ b/src/cljs/ulysses/utils.cljs @@ -309,6 +309,10 @@ (apply max))) metrics))) +(defn verify-user-poll-response + [response] + (-> response :user :netid string/blank? not)) + ;; ---------------------------------------------------------------------------- ;; data transforms ;; ---------------------------------------------------------------------------- @@ -352,22 +356,30 @@ (defn request "make an api request, with progress tracking" - [db endpoint & {:keys [verb params req-user? handler error-handler finish] + [db endpoint & {:keys [verb + params + require-user? + progress? + handler + error-handler + finish] :or {verb :get params nil - req-user? true + require-user? true + progress? true handler noop error-handler noop finish noop}}] ; only allow requests if logged in or check is bypassed - (when (or (not req-user?) (:user db)) - (let [progress-id (:next-progress-id db) + (when (or (not require-user?) (:user db)) + (let [progress-id (when progress? (:next-progress-id db)) method (case verb :get ajax.core/GET :post ajax.core/POST :put ajax.core/PUT :delete ajax.core/DELETE ajax.core/GET)] - (dispatch [:progress progress-id 1]) + (when progress? + (dispatch [:progress progress-id 1])) (method (string/join "/" (cons config/api-endpoint @@ -387,7 +399,8 @@ (error-handler e)) ; user :finally (fn [e] - (dispatch [:progress progress-id 100]) ; complete progress + (when progress? + (dispatch [:progress progress-id 100])) ; complete progress (finish e))}))) ; user db) ; (no direct db change)