Sha256: 414182c1f3cf1c5f5ccde41d2d39cd5a186b868dc0e48626b2a504f79ce49f31

Contents?: true

Size: 964 Bytes

Versions: 3

Compression:

Stored size: 964 Bytes

Contents

module SendGridWebApi
  autoload :Faraday, 'middlewares/sendgrid_response'
  
  class Base
    attr_accessor :api_user, :api_key

    def initialize api_user, api_key
      @api_user = api_user
      @api_key  = api_key
    end
    
    def make_request_url url, options
      "#{url}?#{builder_options(options)}"
    end

    def builder_options options
      options.merge!(:api_user => @api_user, :api_key => @api_key)
      to_query(options)
    end

    def query_api url, options
      session.get(make_request_url(url, options)).body
    end

    def query_post_api url, options
      builder_options(options)
      session.post(url, builder_options(options)).body
    end
    
    def to_query(options)
      Faraday::Utils.build_nested_query(options)
    end

    def session
      @connection ||= ::Faraday.new base_url do |conn|
        conn.use Faraday::Response::SendGridWebApi
        conn.adapter Faraday.default_adapter
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sendgrid_webapi-0.0.3 lib/base.rb
sendgrid_webapi-0.0.2 lib/base.rb
sendgrid_webapi-0.0.1 lib/base.rb