-
Notifications
You must be signed in to change notification settings - Fork 7
/
subscriber.clj
51 lines (47 loc) · 2.12 KB
/
subscriber.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
(ns unleash-client-clojure.subscriber
(:import [no.finn.unleash.event UnleashSubscriber UnleashEvent UnleashReady ToggleEvaluated]
[no.finn.unleash.repository FeatureToggleResponse ToggleCollection]
[no.finn.unleash.metric ClientMetrics ClientRegistration]
[no.finn.unleash UnleashException]))
(deftype Subscriber [on-error
on-event
on-ready
toggle-evaluated
toggles-fetched
client-metrics
client-registered
toggles-backed-up
toggle-backup-restored]
UnleashSubscriber
(^void onError [_ ^UnleashException ex]
(on-error ex))
(^void on [_ ^UnleashEvent event]
(on-event event))
(^void onReady [_ ^UnleashReady ready]
(on-ready ready))
(^void toggleEvaluated [_ ^ToggleEvaluated evaluated]
(toggle-evaluated evaluated))
(^void togglesFetched [_ ^FeatureToggleResponse response]
(toggles-fetched response))
(^void clientMetrics [_ ^ClientMetrics metrics]
(client-metrics metrics))
(^void clientRegistered [_ ^ClientRegistration registration]
(client-registered registration))
(^void togglesBackedUp [_ ^ToggleCollection _collection]
(toggles-backed-up))
(^void toggleBackupRestored [_ ^ToggleCollection collection]
(toggle-backup-restored collection)))
(defn- no-op [_])
(defn build [{:keys [on-error on-event on-ready toggle-evaluated
toggles-fetched client-metrics client-registered
toggles-backed-up toggle-backup-restored]
:or {on-error no-op
on-event no-op
toggle-evaluated no-op
toggles-fetched no-op
client-metrics no-op
client-registered no-op
toggles-backed-up no-op
toggle-backup-restored no-op}}]
(Subscriber. on-error on-event on-ready toggle-evaluated toggles-fetched
client-metrics client-registered toggles-backed-up toggle-backup-restored))