| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package analytics
- import (
- "fmt"
- "github.com/porter-dev/porter/internal/models"
- segment "gopkg.in/segmentio/analytics-go.v3"
- )
- type segmentIdentifier interface {
- getUserId() string
- getTraits() segment.Traits
- }
- type segmentIdentifyNewUser struct {
- userId string
- userEmail string
- isGithub bool
- }
- // CreateSegmentIdentifyUser creates an identifier for users
- func CreateSegmentIdentifyUser(user *models.User) *segmentIdentifyNewUser {
- userId := fmt.Sprintf("%v", user.ID)
- return &segmentIdentifyNewUser{
- userId: userId,
- userEmail: user.Email,
- isGithub: user.GithubUserID != 0,
- }
- }
- func (i segmentIdentifyNewUser) getUserId() string {
- return i.userId
- }
- func (i segmentIdentifyNewUser) getTraits() segment.Traits {
- var githubTrait string
- if i.isGithub {
- githubTrait = "true"
- } else {
- githubTrait = "false"
- }
- return segment.NewTraits().
- SetEmail(i.userEmail).
- Set("github", githubTrait)
- }
|