mirror of
https://github.com/tulir/mautrix-whatsapp
synced 2024-12-13 17:13:11 +01:00
Allow setting segment_user_id in config
This commit is contained in:
parent
e5d32cc1e2
commit
fa0a69d746
4 changed files with 16 additions and 2 deletions
|
@ -24,7 +24,8 @@ import (
|
|||
type Config struct {
|
||||
*bridgeconfig.BaseConfig `yaml:",inline"`
|
||||
|
||||
SegmentKey string `yaml:"segment_key"`
|
||||
SegmentKey string `yaml:"segment_key"`
|
||||
SegmentUserId string `yaml:"segment_user_id"`
|
||||
|
||||
Metrics struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
|
|
|
@ -72,6 +72,8 @@ appservice:
|
|||
|
||||
# Segment API key to track some events, like provisioning API login and encryption errors.
|
||||
segment_key: null
|
||||
# Optional user_id to use when sending Segment events. If null, defaults to using mxID.
|
||||
segment_user_id: null
|
||||
|
||||
# Prometheus config.
|
||||
metrics:
|
||||
|
|
4
main.go
4
main.go
|
@ -93,8 +93,12 @@ func (br *WABridge) Init() {
|
|||
|
||||
Segment.log = br.Log.Sub("Segment")
|
||||
Segment.key = br.Config.SegmentKey
|
||||
Segment.userID = br.Config.SegmentUserId
|
||||
if Segment.IsEnabled() {
|
||||
Segment.log.Infoln("Segment metrics are enabled")
|
||||
if Segment.userID != "" {
|
||||
Segment.log.Infoln("Overriding Segment user_id with %v", Segment.userID)
|
||||
}
|
||||
}
|
||||
|
||||
br.DB = database.New(br.Bridge.DB, br.Log.Sub("Database"))
|
||||
|
|
|
@ -30,6 +30,7 @@ const SegmentURL = "https://api.segment.io/v1/track"
|
|||
|
||||
type SegmentClient struct {
|
||||
key string
|
||||
userID string
|
||||
log log.Logger
|
||||
client http.Client
|
||||
}
|
||||
|
@ -38,8 +39,14 @@ var Segment SegmentClient
|
|||
|
||||
func (sc *SegmentClient) trackSync(userID id.UserID, event string, properties map[string]interface{}) error {
|
||||
var buf bytes.Buffer
|
||||
var segmentUserID string
|
||||
if Segment.userID != "" {
|
||||
segmentUserID = Segment.userID
|
||||
} else {
|
||||
segmentUserID = userID.String()
|
||||
}
|
||||
err := json.NewEncoder(&buf).Encode(map[string]interface{}{
|
||||
"userId": userID,
|
||||
"userId": segmentUserID,
|
||||
"event": event,
|
||||
"properties": properties,
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue