@@ -37,14 +37,14 @@ type Dispatcher interface {
37
37
DispatchEvent (event LogEvent ) (bool , error )
38
38
}
39
39
40
- // HTTPEventDispatcher is the HTTP implementation of the Dispatcher interface
41
- type HTTPEventDispatcher struct {
40
+ // httpEventDispatcher is the HTTP implementation of the Dispatcher interface
41
+ type httpEventDispatcher struct {
42
42
requester * utils.HTTPRequester
43
43
logger logging.OptimizelyLogProducer
44
44
}
45
45
46
46
// DispatchEvent dispatches event with callback
47
- func (ed * HTTPEventDispatcher ) DispatchEvent (event LogEvent ) (bool , error ) {
47
+ func (ed * httpEventDispatcher ) DispatchEvent (event LogEvent ) (bool , error ) {
48
48
49
49
_ , _ , code , err := ed .requester .Post (event .EndPoint , event .Event )
50
50
@@ -65,6 +65,18 @@ func (ed *HTTPEventDispatcher) DispatchEvent(event LogEvent) (bool, error) {
65
65
return success , err
66
66
}
67
67
68
+ // NewHTTPEventDispatcher creates a full http dispatcher. The requester and logger parameters can be nil.
69
+ func NewHTTPEventDispatcher (sdkKey string , requester * utils.HTTPRequester , logger logging.OptimizelyLogProducer ) Dispatcher {
70
+ if requester == nil {
71
+ requester = utils .NewHTTPRequester (logging .GetLogger (sdkKey , "HTTPRequester" ))
72
+ }
73
+ if logger == nil {
74
+ logger = logging .GetLogger (sdkKey , "httpEventDispatcher" )
75
+ }
76
+
77
+ return & httpEventDispatcher {requester : requester , logger : logger }
78
+ }
79
+
68
80
// QueueEventDispatcher is a queued version of the event Dispatcher that queues, returns success, and dispatches events in the background
69
81
type QueueEventDispatcher struct {
70
82
eventQueue Queue
@@ -161,9 +173,8 @@ func NewQueueEventDispatcher(sdkKey string, metricsRegistry metrics.Registry) *Q
161
173
}
162
174
163
175
return & QueueEventDispatcher {
164
- eventQueue : NewInMemoryQueue (defaultQueueSize ),
165
- Dispatcher : & HTTPEventDispatcher {requester : utils .NewHTTPRequester (logging .GetLogger (sdkKey , "HTTPRequester" ))},
166
-
176
+ eventQueue : NewInMemoryQueue (defaultQueueSize ),
177
+ Dispatcher : NewHTTPEventDispatcher (sdkKey , nil , nil ),
167
178
queueSize : dispatcherMetricsRegistry .GetGauge (metrics .DispatcherQueueSize ),
168
179
retryFlushCounter : dispatcherMetricsRegistry .GetCounter (metrics .DispatcherRetryFlush ),
169
180
failFlushCounter : dispatcherMetricsRegistry .GetCounter (metrics .DispatcherFailedFlush ),
0 commit comments