@@ -19,6 +19,7 @@ package event
19
19
20
20
import (
21
21
"errors"
22
+ "log"
22
23
"strings"
23
24
"time"
24
25
@@ -37,7 +38,26 @@ const botFilteringKey = "$opt_bot_filtering"
37
38
const revenueKey = "revenue"
38
39
const valueKey = "value"
39
40
41
+ // SupportedRegions maps of supported regions for event endpoints
42
+ var SupportedRegions = map [string ]bool {"US" : true , "EU" : true }
43
+
44
+ func getEventEndPoint (region , eventEndPoint string ) string {
45
+ if eventEndPoint != "" {
46
+ return eventEndPoint
47
+ }
48
+
49
+ region = strings .ToUpper (region )
50
+
51
+ if ! SupportedRegions [region ] {
52
+ log .Print ("Unsupported region provided for event endpoint. Defaulting to US." )
53
+ region = "US"
54
+ }
55
+
56
+ return EventEndPoints [region ]
57
+ }
58
+
40
59
func createLogEvent (event Batch , eventEndPoint string ) LogEvent {
60
+ eventEndPoint = getEventEndPoint (event .Region , eventEndPoint )
41
61
return LogEvent {EndPoint : eventEndPoint , Event : event }
42
62
}
43
63
@@ -55,6 +75,7 @@ func CreateEventContext(projectConfig config.ProjectConfig) Context {
55
75
context .ClientVersion = Version
56
76
context .AnonymizeIP = projectConfig .GetAnonymizeIP ()
57
77
context .BotFiltering = projectConfig .GetBotFiltering ()
78
+ context .Region = projectConfig .GetRegion ()
58
79
59
80
return context
60
81
}
@@ -253,6 +274,7 @@ func createBatchEvent(userEvent UserEvent, visitor Visitor) Batch {
253
274
eventBatch .ClientVersion = userEvent .EventContext .ClientVersion
254
275
eventBatch .AnonymizeIP = userEvent .EventContext .AnonymizeIP
255
276
eventBatch .EnrichDecisions = true
277
+ eventBatch .Region = userEvent .EventContext .Region
256
278
257
279
return eventBatch
258
280
}
0 commit comments