Sha256: a651d6fd1710871bc9a017348c5ccb36bab7c494cc7ce9a883598dabbbd11d97

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

require 'faraday_middleware'
require 'faraday/response/raise_cloud_connect_error'

module CloudConnect
  # @private
  module Connection
    private

    def api_endpoint
      File.join(@api_url, @api_path, "")
    end

    def url
      url = "http://#{[account, api_endpoint].join('.')}"
    end

    def connection(raw=false, force_urlencoded=false)
      options = {
        :ssl => { :verify => false },
        :url => url,
      }

      options[:proxy] = proxy unless proxy.nil?

      # TODO: Don't build on every request
      connection = Faraday.new(options) do |builder|
        if !force_urlencoded
          builder.request :json
        else
          builder.request :url_encoded
        end

        builder.use Faraday::Response::RaiseCloudConnectError

        unless raw
          builder.use FaradayMiddleware::Mashify
          builder.use FaradayMiddleware::ParseJson
        end

        faraday_config_block.call(builder) if faraday_config_block

        builder.adapter *adapter
      end

      connection.basic_auth authentication[:token], 'X'
      connection
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cloud_connect-3.1.0 lib/cloud_connect/connection.rb
cloud_connect-3.0.3 lib/cloud_connect/connection.rb