func GetUniqueUserFirstNamesByProjectID(ctx context.Context, projectID string) ([]string, error) {
userFirstNames, err := GetUserFirstNamesByProjectID(ctx, projectID)
if err != nil {
return nil, err
}
var (
userFirstNamesMap map[string]bool
uniqueUserFirstNames []string
)
for _, userFirstName := range userFirstNames {
if _, ok := userFirstNamesMap[userFirstName]; !ok {
userFirstNamesMap[userFirstName] = true
uniqueUserFirstNames = append(uniqueUserFirstNames, userFirstName)
}
}
return uniqueUserFirstNames, nil
}
// users
// id first_name project_id
func GetUserFirstNamesByProjectID(ctx context.Context, projectID string) ([]string, error) {
rows, err := conn.Query(context.Background(), fmt.Sprintf("SELECT first_name from users where project_id = '%s';", projectID))
if err != nil {
return nil, err
}
var userFirstNames []string
for rows.Next() {
var userFirstName string
if err := rows.Scan(&userFirstName); err != nil {
return nil, err
}
userFirstNames = append(userFirstNames, userFirstName)
}
return userFirstNames, nil
}