Sha256: c36ee57b6299f2d04e20f04c722d7251c28c3c46c9f020084aab5687ef934546

Contents?: true

Size: 962 Bytes

Versions: 14

Compression:

Stored size: 962 Bytes

Contents

require 'net/http'
require 'json'

module Paraxial
  module FreeTier
    class << self
      attr_reader :is_free_tier

      def initialize
        @is_free_tier = true
        check_free_tier_status
      end

      private

      # Kicks off an async HTTP request
      def check_free_tier_status
        Thread.new do
          uri = URI.parse(Paraxial::Helpers.get_free_tier_url())
          headers = { 'Content-Type': 'application/json' }
          body = { api_key: Paraxial::Helpers.get_api_key }
          r = Net::HTTP.post(uri, body.to_json, headers)
          result = JSON.parse(r.body)
          # Assume the API response contains a field `free_tier` (true/false)
          @is_free_tier = result['free_tier']
        rescue StandardError => e
          # Handle any errors (network issues, parsing errors, etc.)
          puts "Error fetching free tier status: #{e.message}"
          @is_free_tier = true
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
paraxial-1.4.4 lib/paraxial/free_tier.rb
paraxial-1.4.3 lib/paraxial/free_tier.rb
paraxial-1.4.2 lib/paraxial/free_tier.rb
paraxial-1.4.1 lib/paraxial/free_tier.rb
paraxial-1.4.0 lib/paraxial/free_tier.rb
paraxial-1.3.1 lib/paraxial/free_tier.rb
paraxial-1.3.0 lib/paraxial/free_tier.rb
paraxial-1.2.0 lib/paraxial/free_tier.rb
paraxial-1.1.0 lib/paraxial/free_tier.rb
paraxial-1.0.2 lib/paraxial/free_tier.rb
paraxial-1.0.1 lib/paraxial/free_tier.rb
paraxial-1.0.0 lib/paraxial/free_tier.rb
paraxial-0.9.1 lib/paraxial/free_tier.rb
paraxial-0.9.0 lib/paraxial/free_tier.rb