Sha256: 026e2b3cdeddfad16220fa75f31838496f34d952b0e959a1d5a1d62460bb0301

Contents?: true

Size: 883 Bytes

Versions: 28

Compression:

Stored size: 883 Bytes

Contents

# frozen_string_literal: true

module Karafka
  module Web
    module Tracking
      module Consumers
        # Consumer tracking related contracts
        module Contracts
          # Expected data for each consumer group
          # It's mostly about subscription groups details
          class ConsumerGroup < Web::Contracts::Base
            configure

            required(:id) { |val| val.is_a?(String) && !val.empty? }
            required(:subscription_groups) { |val| val.is_a?(Hash) }

            virtual do |data, errors|
              next unless errors.empty?

              subscription_group_contract = SubscriptionGroup.new

              data.fetch(:subscription_groups).each_value do |details|
                subscription_group_contract.validate!(details)
              end

              nil
            end
          end
        end
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
karafka-web-0.10.4 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.10.3 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.10.2 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.10.1 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.10.0 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.10.0.rc2 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.10.0.rc1 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.10.0.beta1 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.9.1 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.9.0 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.9.0.rc3 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.9.0.rc2 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.9.0.rc1 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.8.2 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.8.1 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.8.0 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.8.0.rc1 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.7.10 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.7.9 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
karafka-web-0.7.8 lib/karafka/web/tracking/consumers/contracts/consumer_group.rb