Sha256: 989afb7c9ac742f360904ad035120cf1a035e7c6c61179b6677d8f557955d7ce

Contents?: true

Size: 1013 Bytes

Versions: 7

Compression:

Stored size: 1013 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Clients
    class Base
      # @return [String]
      attr_reader :base_url

      # @return [Hash]
      attr_reader :headers

      #
      # @param [String] base_url
      # @param [Hash] headers
      #
      def initialize(base_url, headers: {})
        @base_url = base_url
        @headers = headers || {}
      end

      private

      #
      # @param [String] path
      #
      # @return [String]
      #
      def url_for(path)
        base_url + path
      end

      #
      # @param [String] path
      # @param [Hashk, nil] params
      #
      # @return [String] <description>
      #
      def get(path, params: nil)
        HTTP.get(url_for(path), headers: headers, params: params)
      end

      #
      # @param [String] path
      # @param [Hash, nil] json
      #
      # @return [String] <description>
      #
      def post(path, json: {})
        HTTP.post(url_for(path), headers: headers, json: json)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mihari-5.2.2 lib/mihari/clients/base.rb
mihari-5.2.1 lib/mihari/clients/base.rb
mihari-5.2.0 lib/mihari/clients/base.rb
mihari-5.1.4 lib/mihari/clients/base.rb
mihari-5.1.3 lib/mihari/clients/base.rb
mihari-5.1.2 lib/mihari/clients/base.rb
mihari-5.1.1 lib/mihari/clients/base.rb