Method: OryClient::Configuration#server_url

Defined in:
lib/ory-client/configuration.rb

#server_url(index, variables = {}, servers = nil) ⇒ Object

Returns URL based on server settings

Parameters:

  • index

    array index of the server settings

  • variables (defaults to: {})

    hash of variable and the corresponding value



484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
# File 'lib/ory-client/configuration.rb', line 484

def server_url(index, variables = {}, servers = nil)
  servers = server_settings if servers == nil

  # check array index out of bound
  if (index.nil? || index < 0 || index >= servers.size)
    fail ArgumentError, "Invalid index #{index} when selecting the server. Must not be nil and must be less than #{servers.size}"
  end

  server = servers[index]
  url = server[:url]

  return url unless server.key? :variables

  # go through variable and assign a value
  server[:variables].each do |name, variable|
    if variables.key?(name)
      if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
        url.gsub! "{" + name.to_s + "}", variables[name]
      else
        fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
      end
    else
      # use default value
      url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
    end
  end

  url
end