Sha256: 84164d6534bebbf33fc0ac3596beacf0613bda9237b1721bfa66cf611293d01c

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

module Shipcloud
  module Request
    class Connection
      attr_reader :https

      def initialize(request_info)
        @info = request_info
      end

      def setup_https
        @https             = Net::HTTP.new(API_BASE, Net::HTTP.https_default_port)
        @https.use_ssl     = true
        @https.verify_mode = OpenSSL::SSL::VERIFY_PEER
        # @https.ca_file     = File.join(ROOT_PATH, "data/shipcloud.crt")
        # @https.set_debug_output $stdout
      end

      def request
        https.start do |connection|
          https.request(https_request)
        end
      end

      protected

      def https_request
        https_request = case @info.http_method
                        when :post
                          Net::HTTP::Post.new(@info.url, API_HEADERS)
                        when :put
                          Net::HTTP::Put.new(@info.url, API_HEADERS)
                        when :delete
                          Net::HTTP::Delete.new(@info.url, API_HEADERS)
                        else
                          Net::HTTP::Get.new(@info.path_with_params(@info.url, @info.data), API_HEADERS)
                        end
        https_request.basic_auth(Shipcloud.api_key, "")
        https_request.body = @info.data.to_json if [:post, :put].include?(@info.http_method)
        https_request
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shipcloud-0.2.0 lib/shipcloud/request/connection.rb
shipcloud-0.1.0 lib/shipcloud/request/connection.rb