Method: ApimaticCalculator::APIHelper.append_url_with_template_parameters

Defined in:
lib/apimatic_calculator/api_helper.rb

.append_url_with_template_parameters(query_builder, parameters) ⇒ Object

Replaces template parameters in the given url. parameters.

Parameters:

  • The (String)

    query string builder to replace the template

  • The (Hash)

    parameters to replace in the url.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/apimatic_calculator/api_helper.rb', line 35

def self.append_url_with_template_parameters(query_builder, parameters)
  # perform parameter validation

  unless query_builder.instance_of? String
    raise ArgumentError, 'Given value for parameter \"query_builder\" is
      invalid.'
  end

  # Return if there are no parameters to replace.

  return query_builder if parameters.nil?

  parameters.each do |key, val|
    if val.nil?
      replace_value = ''
    elsif val['value'].instance_of? Array
      if val['encode'] == true
        val['value'].map! { |element| CGI.escape(element.to_s) }
      else
        val['value'].map!(&:to_s)
      end
      replace_value = val['value'].join('/')
    else
      replace_value = if val['encode'] == true
                        CGI.escape(val['value'].to_s)
                      else
                        val['value'].to_s
                      end
    end

    # Find the template parameter and replace it with its value.

    query_builder = query_builder.gsub("{#{key}}", replace_value)
  end
  query_builder
end