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)))
(defn ->view-sig
[namespace view-id parameters]
{:namespace namespace
:view-id view-id
:parameters parameters})
([namespace view-id parameters]
{:namespace namespace
:view-id view-id
:parameters parameters})
([view-id parameters]
{:view-id view-id
:parameters parameters}))
(defn- send-view-data!
[subscriber-key {:keys [namespace view-id parameters] :as view-sig} data]
@ -94,7 +97,9 @@
data for the view."
[{:keys [namespace view-id parameters] :as view-sig} subscriber-key context]
(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)]
(if (authorized-subscription? view-sig subscriber-key context)
(do
@ -160,7 +165,9 @@
(trace "unsubscribing from view" view-sig subscriber-key)
(swap! view-system
(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)]
(-> vs
(remove-from-subscribed view-sig subscriber-key)