From 2c29f7fe71ccccc4124cffb42257be04d5719385 Mon Sep 17 00:00:00 2001 From: gered Date: Fri, 20 May 2016 12:21:30 -0400 Subject: [PATCH] pass in context to views subscribe/unsubscribe calls --- .../browserchannel/server.clj | 4 ++-- .../src/reagent_data_views/server/core.clj | 24 +++++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/reagent-data-views-browserchannel/src/reagent_data_views/browserchannel/server.clj b/reagent-data-views-browserchannel/src/reagent_data_views/browserchannel/server.clj index 4d1044e..c0ae04a 100644 --- a/reagent-data-views-browserchannel/src/reagent_data_views/browserchannel/server.clj +++ b/reagent-data-views-browserchannel/src/reagent_data_views/browserchannel/server.clj @@ -20,12 +20,12 @@ {:on-receive (fn [handler] (fn [client-id request data] - (if-not (server/on-receive! client-id data) + (if-not (server/on-receive! client-id data {:request request}) ; only pass along receive events for data not intended for the views system (handler client-id request data)))) :on-close (fn [handler] (fn [client-id request reason] - (server/on-close! client-id) + (server/on-close! client-id {:request request}) (handler client-id request reason)))}) diff --git a/reagent-data-views/src/reagent_data_views/server/core.clj b/reagent-data-views/src/reagent_data_views/server/core.clj index 839f6d7..9049155 100644 --- a/reagent-data-views/src/reagent_data_views/server/core.clj +++ b/reagent-data-views/src/reagent_data_views/server/core.clj @@ -5,31 +5,29 @@ [reagent-data-views.utils :refer [relevant-event?]])) (defn on-close! - [client-id] + [client-id context] (log/trace client-id "on-close, unsubscribing from all views") (views/unsubscribe-all! client-id)) (defn handle-subscriptions! - [client-id view-sig] + [client-id view-sig context] (log/trace client-id "subscribing to" view-sig) - (let [{:keys [view-id parameters]} view-sig] - ; TODO: namespace - (views/subscribe! nil view-id parameters client-id))) + (views/subscribe! view-sig client-id context)) (defn handle-unsubscriptions! - [client-id view-sig] + [client-id view-sig context] (log/trace client-id "unsubscribing from" view-sig) - (let [{:keys [view-id parameters]} view-sig] - ; TODO: namespace - (views/unsubscribe! nil view-id parameters client-id))) + (views/unsubscribe! view-sig client-id context)) (defn on-receive! - [client-id data] + [client-id data context] (when (relevant-event? data) - (let [[event view-sig] data] + (let [[event view-sig] data + ; for safety, since this is otherwise coming in un-altered from clients + view-sig (dissoc view-sig :namespace)] (condp = event - :views/subscribe (handle-subscriptions! client-id view-sig) - :views/unsubscribe (handle-unsubscriptions! client-id view-sig) + :views/subscribe (handle-subscriptions! client-id view-sig context) + :views/unsubscribe (handle-unsubscriptions! client-id view-sig context) (log/warn client-id "unrecognized event" event "-- full received data:" data)) ; indicating that we handled the received event true)))