Sha256: 8cbd2a7d0cb7802221c626279c7712c74ba8de5db03a91afa2c4675d9e19d3d0

Contents?: true

Size: 1.29 KB

Versions: 8

Compression:

Stored size: 1.29 KB

Contents

module Nurego
  class Entitlement < APIResource
    include Nurego::APIOperations::List
    include Nurego::APIOperations::Create

    def set_usage(feature_id, amount, provider_name = nil)
      payload = {
          feature_id: feature_id,
          organization: id,
          amount: amount,
      }
      payload[:provider_name] = provider_name if provider_name
      response, api_key = Nurego.request(:put, "/v1/entitlements/usage", nil, payload)
    end

    def is_allowed(features, provider_name = nil)
      payload =  {
          :organization => id,
      }
      payload[:provider_name] = provider_name if provider_name

      features = features.is_a?(Array) ? features : [features]
      features_url = structure_sensitive_mimic_to_query(features, 'features')
      response, api_key = Nurego.request(:get, "/v1/entitlements/allowed?#{features_url}",
                                         nil, payload)
      Util.convert_to_nurego_object(response, api_key)
    end

private
      def structure_sensitive_mimic_to_query(array, key)
        prefix = "#{key}[]"
        array.collect do | feature |
          feature.collect do |key, value|
            nk = "#{prefix}[#{key}]"
            "#{CGI.escape(nk)}=#{CGI.escape(value.to_s)}"
          end.sort * '&'
        end.join '&'
      end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
nurego-1.1.14 lib/nurego/entitlement.rb
nurego-1.1.13 lib/nurego/entitlement.rb
nurego-1.1.12 lib/nurego/entitlement.rb
nurego-1.1.11 lib/nurego/entitlement.rb
nurego-1.0.10 lib/nurego/entitlement.rb
nurego-1.0.9 lib/nurego/entitlement.rb
nurego-1.0.8 lib/nurego/entitlement.rb
nurego-1.0.7 lib/nurego/entitlement.rb