func getDBConnectionString()

in lib/backend/sqlbackend/client.go [98:123]


func getDBConnectionString(config Config, authConfig UserAuthConfig) (string, error) {
	conn := config.ConnectionString
	if conn == "" {
		return "", errors.New("connection_string is not set")
	}

	auth, ok := authConfig[config.Username]
	if ok {
		user := auth.SQL.User
		pass := auth.SQL.Password

		if user == "" && pass != "" {
			return "", errors.New("must specify DB user when specifying DB password")
		}

		if user != "" && pass == "" {
			return fmt.Sprintf("%s@%s", user, conn), nil
		}

		if user != "" && pass != "" {
			return fmt.Sprintf("%s:%s@%s", user, pass, conn), nil
		}
	}

	return conn, nil
}