Class: GetStreamRuby::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/getstream_ruby/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = nil, api_key: nil, api_secret: nil, base_url: nil, timeout: nil) ⇒ Client

Returns a new instance of Client.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/getstream_ruby/client.rb', line 24

def initialize(config = nil, api_key: nil, api_secret: nil, base_url: nil, timeout: nil)
  @configuration = config || GetStreamRuby.configuration

  # Create new configuration with overrides if any parameters provided
  if api_key || api_secret || base_url || timeout
    @configuration = Configuration.with_overrides(
      api_key: api_key,
      api_secret: api_secret,
      base_url: base_url,
      timeout: timeout,
    )
  end

  @configuration.validate!
  @connection = build_connection
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



22
23
24
# File 'lib/getstream_ruby/client.rb', line 22

def configuration
  @configuration
end

Instance Method Details

#chatGetStream::Generated::ChatClient

Returns The chat API client.

Returns:

  • The chat API client



63
64
65
# File 'lib/getstream_ruby/client.rb', line 63

def chat
  @chat ||= GetStream::Generated::ChatClient.new(self)
end

#commonGetStream::Generated::CommonClient

Returns The common API client.

Returns:

  • The common API client



48
49
50
# File 'lib/getstream_ruby/client.rb', line 48

def common
  @common ||= GetStream::Generated::CommonClient.new(self)
end

#feed(feed_group_id, feed_id) ⇒ GetStream::Generated::Feed

Create an individual feed instance

Parameters:

  • The feed group ID

  • The feed ID

Returns:

  • A feed instance



76
77
78
# File 'lib/getstream_ruby/client.rb', line 76

def feed(feed_group_id, feed_id)
  GetStream::Generated::Feed.new(self, feed_group_id, feed_id)
end

#feed_resourceObject



41
42
43
# File 'lib/getstream_ruby/client.rb', line 41

def feed_resource
  @feed_resource ||= Resources::Feed.new(self)
end

#feedsGetStream::Generated::FeedsClient

Returns The feeds API client.

Returns:

  • The feeds API client



53
54
55
# File 'lib/getstream_ruby/client.rb', line 53

def feeds
  @feeds ||= GetStream::Generated::FeedsClient.new(self)
end

#make_request(method, path, query_params: nil, body: nil) ⇒ Object



87
88
89
90
91
92
93
94
95
96
# File 'lib/getstream_ruby/client.rb', line 87

def make_request(method, path, query_params: nil, body: nil)
  # Handle query parameters
  if query_params && !query_params.empty?
    query_string = query_params.map { |k, v| "#{k}=#{v}" }.join('&')
    path = "#{path}?#{query_string}"
  end

  # Make the request
  request(method, path, body)
end

#moderationGetStream::Generated::ModerationClient

Returns The moderation API client.

Returns:

  • The moderation API client



58
59
60
# File 'lib/getstream_ruby/client.rb', line 58

def moderation
  @moderation ||= GetStream::Generated::ModerationClient.new(self)
end

#post(path, body = {}) ⇒ GetStreamRuby::StreamResponse

Returns The API response.

Parameters:

  • The API path

  • (defaults to: {})

    The request body

Returns:

  • The API response



83
84
85
# File 'lib/getstream_ruby/client.rb', line 83

def post(path, body = {})
  request(:post, path, body)
end

#videoGetStream::Generated::VideoClient

Returns The video API client.

Returns:

  • The video API client



68
69
70
# File 'lib/getstream_ruby/client.rb', line 68

def video
  @video ||= GetStream::Generated::VideoClient.new(self)
end