Sha256: 4806ca824f67e42c50ba760ec788995fa510105aa9d9ce13460ce62efca12f3b

Contents?: true

Size: 1.18 KB

Versions: 10

Compression:

Stored size: 1.18 KB

Contents

require "json"
require "uri"
require "net/http"
require "net/https"

module Shipit
  module Cli
    class Server
      def initialize(url, options = {})
        @uri = URI(url)
        @scheme = @uri.scheme || "https"
        @method = options[:method] || :get
        @body = options[:body]
        @private_token = options[:private_token] || Shipit::Cli.config.private_token
        @authorization_header = "Token #{@private_token}"
        @http = set_http(@uri, @scheme)
      end

      def request
        case @method
        when :post
          @request = Net::HTTP::Post.new(@uri.request_uri, initheader = { "Content-Type" => "application/json" })
          @request.body = @body.to_json
        else
          @request = Net::HTTP::Get.new(@uri.request_uri)
        end

        @request["authorization"] = @authorization_header
        @request
      end

      def response
        @response ||= @http.request(request)
      end

      private

      def set_http(uri, scheme)
        http = Net::HTTP.new(uri.host, uri.port)
        if scheme == "https"
          http.use_ssl = true
          http.verify_mode = OpenSSL::SSL::VERIFY_PEER
        end
        http
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
intello-shipit-cli-1.3.1 lib/shipit/cli/server.rb
intello-shipit-cli-1.3.0 lib/shipit/cli/server.rb
intello-shipit-cli-1.2.0 lib/shipit/cli/server.rb
intello-shipit-cli-1.1.0 lib/shipit/cli/server.rb
intello-shipit-cli-1.0.0 lib/shipit/cli/server.rb
intello-shipit-cli-0.6.0.rc6 lib/shipit/cli/server.rb
intello-shipit-cli-0.6.0.rc4 lib/shipit/cli/server.rb
intello-shipit-cli-0.6.0.rc3 lib/shipit/cli/server.rb
intello-shipit-cli-0.6.0.rc2 lib/shipit/cli/server.rb
intello-shipit-cli-0.6.0.rc1 lib/shipit/cli/server.rb