Sha256: 625d65dd4c07ef7a3178dfd24455ae24184705fa8d0b0766791c99d48151228d

Contents?: true

Size: 1.16 KB

Versions: 5

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

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

      # @return [Hash]
      attr_reader :headers

      # @return [Integer, nil]
      attr_reader :interval

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

      private

      def sleep_interval
        sleep(interval) if interval
      end

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

      #
      # @param [String] path
      # @param [Hash, 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

5 entries across 5 versions & 1 rubygems

Version Path
mihari-5.4.7 lib/mihari/clients/base.rb
mihari-5.4.6 lib/mihari/clients/base.rb
mihari-5.4.5 lib/mihari/clients/base.rb
mihari-5.4.4 lib/mihari/clients/base.rb
mihari-5.4.3 lib/mihari/clients/base.rb