Sha256: 0deb2d775075aaa301caca2506fd623319f1dba904e5976caad610344fc8cdc6

Contents?: true

Size: 1.5 KB

Versions: 22

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module Telnyx
  module APIOperations
    module Request
      module ClassMethods
        def request(method, url, params = {}, opts = {})
          warn_on_opts_in_params(params)

          opts = Util.normalize_opts(opts)
          opts[:client] ||= TelnyxClient.active_client

          headers = opts.clone
          api_key = headers.delete(:api_key)
          api_base = headers.delete(:api_base)
          client = headers.delete(:client)
          # Assume all remaining opts must be headers

          resp, opts[:api_key] = client.execute_request(
            method, url,
            api_base: api_base, api_key: api_key,
            headers: headers, params: params
          )

          # Hash#select returns an array before 1.9
          opts_to_persist = {}
          opts.each do |k, v|
            opts_to_persist[k] = v if Util::OPTS_PERSISTABLE.include?(k)
          end

          [resp, opts_to_persist]
        end

        private

        def warn_on_opts_in_params(params)
          Util::OPTS_USER_SPECIFIED.each do |opt|
            if params.key?(opt)
              $stderr.puts("WARNING: #{opt} should be in opts instead of params.")
            end
          end
        end
      end

      def self.included(base)
        base.extend(ClassMethods)
      end

      protected

      def request(method, url, params = {}, opts = {})
        opts = @opts.merge(Util.normalize_opts(opts))
        self.class.request(method, url, params, opts)
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
telnyx-3.0.5 lib/telnyx/api_operations/request.rb
telnyx-3.0.4 lib/telnyx/api_operations/request.rb
telnyx-3.0.3 lib/telnyx/api_operations/request.rb
telnyx-3.0.2 lib/telnyx/api_operations/request.rb
telnyx-3.0.0 lib/telnyx/api_operations/request.rb
telnyx-2.9.0 lib/telnyx/api_operations/request.rb
telnyx-2.8.0 lib/telnyx/api_operations/request.rb
telnyx-2.7.0 lib/telnyx/api_operations/request.rb
telnyx-2.6.0 lib/telnyx/api_operations/request.rb
telnyx-2.5.0 lib/telnyx/api_operations/request.rb
telnyx-2.4.0 lib/telnyx/api_operations/request.rb
telnyx-2.3.0 lib/telnyx/api_operations/request.rb
telnyx-2.2.0 lib/telnyx/api_operations/request.rb
telnyx-0.1.0 lib/telnyx/api_operations/request.rb
telnyx-0.0.8 lib/telnyx/api_operations/request.rb
telnyx-0.0.7 lib/telnyx/api_operations/request.rb
telnyx-0.0.6 lib/telnyx/api_operations/request.rb
telnyx-0.0.5 lib/telnyx/api_operations/request.rb
telnyx-0.0.4 lib/telnyx/api_operations/request.rb
telnyx-0.0.3 lib/telnyx/api_operations/request.rb