better way of picking which namespace to use in subscribe/unsubscribe

if the view sig specified includes a namespace (even a nil one), then
use it for the subscription. otherwise, call namespace-fn to get one
to use in the subscription.
This commit is contained in:
Gered 2016-05-23 12:18:28 -04:00
parent 8fb1a2cbbb
commit ff15c42f9a

View file

@ -44,10 +44,13 @@
(boolean (:logger @statistics))) (boolean (:logger @statistics)))
(defn ->view-sig (defn ->view-sig
[namespace view-id parameters] ([namespace view-id parameters]
{:namespace namespace {:namespace namespace
:view-id view-id :view-id view-id
:parameters parameters}) :parameters parameters})
([view-id parameters]
{:view-id view-id
:parameters parameters}))
(defn- send-view-data! (defn- send-view-data!
[subscriber-key {:keys [namespace view-id parameters] :as view-sig} data] [subscriber-key {:keys [namespace view-id parameters] :as view-sig} data]
@ -94,7 +97,9 @@
data for the view." data for the view."
[{:keys [namespace view-id parameters] :as view-sig} subscriber-key context] [{:keys [namespace view-id parameters] :as view-sig} subscriber-key context]
(if-let [view (get-in @view-system [:views view-id])] (if-let [view (get-in @view-system [:views view-id])]
(let [namespace (get-namespace view-sig subscriber-key context) (let [namespace (if (contains? view-sig :namespace)
namespace
(get-namespace view-sig subscriber-key context))
view-sig (->view-sig namespace view-id parameters)] view-sig (->view-sig namespace view-id parameters)]
(if (authorized-subscription? view-sig subscriber-key context) (if (authorized-subscription? view-sig subscriber-key context)
(do (do
@ -160,7 +165,9 @@
(trace "unsubscribing from view" view-sig subscriber-key) (trace "unsubscribing from view" view-sig subscriber-key)
(swap! view-system (swap! view-system
(fn [vs] (fn [vs]
(let [namespace (get-namespace view-sig subscriber-key context) (let [namespace (if (contains? view-sig :namespace)
namespace
(get-namespace view-sig subscriber-key context))
view-sig (->view-sig namespace view-id parameters)] view-sig (->view-sig namespace view-id parameters)]
(-> vs (-> vs
(remove-from-subscribed view-sig subscriber-key) (remove-from-subscribed view-sig subscriber-key)