Sfoglia il codice sorgente

fix analytics fields (#3033)

Feroze Mohideen 3 anni fa
parent
commit
7f7d930e80

+ 12 - 0
api/server/handlers/stacks/porter_app_analytics.go

@@ -38,6 +38,10 @@ func (v *PorterAppAnalyticsHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
 	if request.Step == "stack-launch-start" {
 		v.Config().AnalyticsClient.Track(analytics.StackLaunchStartTrack(&analytics.StackLaunchStartOpts{
 			ProjectScopedTrackOpts: analytics.GetProjectScopedTrackOpts(user.ID, project.ID),
+			Email:                  user.Email,
+			FirstName:              user.FirstName,
+			LastName:               user.LastName,
+			CompanyName:            user.CompanyName,
 		}))
 	}
 
@@ -45,6 +49,10 @@ func (v *PorterAppAnalyticsHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
 		v.Config().AnalyticsClient.Track(analytics.StackLaunchCompleteTrack(&analytics.StackLaunchCompleteOpts{
 			ProjectScopedTrackOpts: analytics.GetProjectScopedTrackOpts(user.ID, project.ID),
 			StackName:              request.StackName,
+			Email:                  user.Email,
+			FirstName:              user.FirstName,
+			LastName:               user.LastName,
+			CompanyName:            user.CompanyName,
 		}))
 	}
 
@@ -52,6 +60,10 @@ func (v *PorterAppAnalyticsHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
 		v.Config().AnalyticsClient.Track(analytics.StackLaunchSuccessTrack(&analytics.StackLaunchSuccessOpts{
 			ProjectScopedTrackOpts: analytics.GetProjectScopedTrackOpts(user.ID, project.ID),
 			StackName:              request.StackName,
+			Email:                  user.Email,
+			FirstName:              user.FirstName,
+			LastName:               user.LastName,
+			CompanyName:            user.CompanyName,
 		}))
 	}
 

+ 29 - 5
internal/analytics/tracks.go

@@ -571,13 +571,23 @@ func ClusterDestroyingSuccessTrack(opts *ClusterDestroyingSuccessTrackOpts) segm
 // StackLaunchStartOpts are the options for creating a track when a user starts creating a stack
 type StackLaunchStartOpts struct {
 	*ProjectScopedTrackOpts
+
+	Email       string
+	FirstName   string
+	LastName    string
+	CompanyName string
 }
 
 // StackLaunchStartTrack returns a track for when a user starts creating a stack
 func StackLaunchStartTrack(opts *StackLaunchStartOpts) segmentTrack {
+	additionalProps := make(map[string]interface{})
+	additionalProps["email"] = opts.Email
+	additionalProps["name"] = opts.FirstName + " " + opts.LastName
+	additionalProps["company"] = opts.CompanyName
+
 	return getSegmentProjectTrack(
 		opts.ProjectScopedTrackOpts,
-		getDefaultSegmentTrack(nil, StackLaunchStart),
+		getDefaultSegmentTrack(additionalProps, StackLaunchStart),
 	)
 }
 
@@ -585,17 +595,24 @@ func StackLaunchStartTrack(opts *StackLaunchStartOpts) segmentTrack {
 type StackLaunchCompleteOpts struct {
 	*ProjectScopedTrackOpts
 
-	StackName string
+	StackName   string
+	Email       string
+	FirstName   string
+	LastName    string
+	CompanyName string
 }
 
 // StackLaunchCompleteTrack returns a track for when a user completes creating a stack
 func StackLaunchCompleteTrack(opts *StackLaunchCompleteOpts) segmentTrack {
 	additionalProps := make(map[string]interface{})
 	additionalProps["stack_name"] = opts.StackName
+	additionalProps["email"] = opts.Email
+	additionalProps["name"] = opts.FirstName + " " + opts.LastName
+	additionalProps["company"] = opts.CompanyName
 
 	return getSegmentProjectTrack(
 		opts.ProjectScopedTrackOpts,
-		getDefaultSegmentTrack(nil, StackLaunchComplete),
+		getDefaultSegmentTrack(additionalProps, StackLaunchComplete),
 	)
 }
 
@@ -603,16 +620,23 @@ func StackLaunchCompleteTrack(opts *StackLaunchCompleteOpts) segmentTrack {
 type StackLaunchSuccessOpts struct {
 	*ProjectScopedTrackOpts
 
-	StackName string
+	StackName   string
+	Email       string
+	FirstName   string
+	LastName    string
+	CompanyName string
 }
 
 // StackLaunchCompleteTrack returns a track for when a user completes creating a stack
 func StackLaunchSuccessTrack(opts *StackLaunchSuccessOpts) segmentTrack {
 	additionalProps := make(map[string]interface{})
 	additionalProps["stack_name"] = opts.StackName
+	additionalProps["email"] = opts.Email
+	additionalProps["name"] = opts.FirstName + " " + opts.LastName
+	additionalProps["company"] = opts.CompanyName
 
 	return getSegmentProjectTrack(
 		opts.ProjectScopedTrackOpts,
-		getDefaultSegmentTrack(nil, StackLaunchSuccess),
+		getDefaultSegmentTrack(additionalProps, StackLaunchSuccess),
 	)
 }