Sha256: b13804324d2e4db43f1f13edfe16b07da7e4f9810aa44834e71dc884857bbd2b

Contents?: true

Size: 840 Bytes

Versions: 6

Compression:

Stored size: 840 Bytes

Contents

# frozen_string_literal: true

module Prefab
  class AuthInterceptor < GRPC::ClientInterceptor
    VERSION = File.exist?('VERSION') ? File.read('VERSION').chomp : ''
    CLIENT = "prefab-cloud-ruby.#{VERSION}".freeze

    def initialize(api_key)
      @api_key = api_key
    end

    def request_response(request:, call:, method:, metadata:, &block)
      shared(metadata, &block)
    end

    def client_streamer(requests:, call:, method:, metadata:, &block)
      shared(metadata, &block)
    end

    def server_streamer(request:, call:, method:, metadata:, &block)
      shared(metadata, &block)
    end

    def bidi_streamer(requests:, call:, method:, metadata:, &block)
      shared(metadata, &block)
    end

    def shared(metadata)
      metadata['auth'] = @api_key
      metadata['client'] = CLIENT
      yield
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
prefab-cloud-ruby-0.23.3 lib/prefab/auth_interceptor.rb
prefab-cloud-ruby-0.23.2 lib/prefab/auth_interceptor.rb
prefab-cloud-ruby-0.23.1 lib/prefab/auth_interceptor.rb
prefab-cloud-ruby-0.23.0 lib/prefab/auth_interceptor.rb
prefab-cloud-ruby-0.22.0 lib/prefab/auth_interceptor.rb
prefab-cloud-ruby-0.21.0 lib/prefab/auth_interceptor.rb