Sobes.tech
Middle+

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 }