func()

in pkg/confidence/confidence.go [107:140]


func (e Confidence) Track(ctx context.Context, eventName string, data map[string]interface{}) *sync.WaitGroup {
	newMap := make(map[string]interface{})
	newMap["context"] = e.GetContext()

	for key, value := range data {
		if key == "context" {
			panic("invalid key \"context\" inside the data")
		}
		newMap[key] = value
	}

	var wg sync.WaitGroup
	wg.Add(1)
	go func() {
		currentTime := time.Now()
		iso8601Time := currentTime.Format(time.RFC3339)
		event := Event{
			EventDefinition: fmt.Sprintf("eventDefinitions/%s", eventName),
			EventTime:       iso8601Time,
			Payload:         newMap,
		}
		batch := EventBatchRequest{
			CclientSecret: e.Config.APIKey,
			Sdk:           sdk{SDK_ID, SDK_VERSION},
			SendTime:      iso8601Time,
			Events:        []Event{event},
		}
		e.Logger.Debug("EventUploading started", "eventName", eventName)
		e.EventUploader.upload(ctx, batch)
		wg.Done()
		e.Logger.Debug("EventUploading completed", "eventName", eventName)
	}()
	return &wg
}