|
1 | 1 | (ns athens.self-hosted.clients
|
2 | 2 | "Client comms"
|
3 | 3 | (:require
|
| 4 | + [athens.common-events :as common-events] |
4 | 5 | [athens.common-events.schema :as schema]
|
5 | 6 | [athens.common.logging :as log]
|
6 | 7 | [cognitect.transit :as transit]
|
|
70 | 71 | valid-server-event? (schema/valid-server-event? data)]
|
71 | 72 | (if (or valid-event-response?
|
72 | 73 | valid-server-event?)
|
73 |
| - (do |
| 74 | + (let [type (common-events/find-event-or-atomic-op-type data) |
| 75 | + status (:event/status data)] |
74 | 76 | (log/debug "Sending to username:" username
|
75 | 77 | ", event-id:" (:event/id data)
|
76 |
| - ", type:" (:event/type data) |
77 |
| - ", status:" (:event/status data)) |
| 78 | + (if type |
| 79 | + (str ", type: " type) |
| 80 | + (str ", status: " status))) |
78 | 81 | (http/send! channel (->transit data)))
|
79 | 82 | ;; TODO internal failure mode, collect in reporting
|
80 | 83 | (log/error "Not sending invalid event to username:" username
|
81 | 84 | ", event-id:" (:event/id data)
|
82 |
| - ", type:" (:event/type data) |
| 85 | + ", type:" (common-events/find-event-or-atomic-op-type data) |
83 | 86 | ", invalid schema:"
|
84 | 87 | "event-response take:" (str (schema/explain-event-response data))
|
85 | 88 | ", server-event take:" (str (schema/explain-server-event data))))))
|
86 | 89 |
|
87 | 90 |
|
88 | 91 | (defn broadcast!
|
89 | 92 | "Broadcasts event to all connected clients"
|
90 |
| - [{:event/keys [id type] :as event}] |
91 |
| - (log/debug "Broadcasting event-id:" id "type:" type) |
| 93 | + [{:event/keys [id] :as event}] |
| 94 | + (log/debug "Broadcasting event-id:" id "type:" (common-events/find-event-or-atomic-op-type event)) |
92 | 95 | (doseq [client (keys @clients)]
|
93 | 96 | (send! client event)))
|
0 commit comments