Class: ListenBrainz::Client

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

Overview

HTTP client for ListenBrainz.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration = ListenBrainz.configuration) ⇒ Client

Returns a new instance of Client.

Parameters:

  • configuration (Configuration) (defaults to: ListenBrainz.configuration)


9
10
11
# File 'lib/listenbrainz/client.rb', line 9

def initialize(configuration = ListenBrainz.configuration)
  @configuration = configuration
end

Instance Attribute Details

#configurationConfiguration (readonly)

Returns:



15
16
17
# File 'lib/listenbrainz/client.rb', line 15

def configuration
  @configuration
end

Instance Method Details

#query(method, path, params: {}, json: nil) ⇒ Array, Hash

Parameters:

  • method (String, Symbol)
  • path (String)
  • params (Hash{String, Symbol => Object}) (defaults to: {})
  • json (Array, Hash, nil) (defaults to: nil)

    JSON object to be sent as a body

Returns:

  • (Array, Hash)

Raises:

  • (HTTPX::Error)


33
34
35
36
# File 'lib/listenbrainz/client.rb', line 33

def query(method, path, params: {}, json: nil)
  httpx.request(method, path, params:, json:).raise_for_status
    .json(symbolize_names: true)
end

#usernameString

Retrieves the username associated with the configured token.

Returns:

  • (String)


21
22
23
# File 'lib/listenbrainz/client.rb', line 21

def username
  @username ||= query(:get, '/1/validate-token').fetch(:user_name)
end