Class: CardDB::Client
- Inherits:
-
Object
- Object
- CardDB::Client
- Defined in:
- lib/carddb/client.rb
Overview
Main client class for interacting with the CardDB API.
Instance Attribute Summary collapse
-
#config ⇒ Configuration
readonly
The client configuration.
-
#connection ⇒ Connection
readonly
The HTTP connection.
Instance Method Summary collapse
-
#batch {|Batch| ... } ⇒ Array
Execute multiple queries in a single batch request.
-
#datasets ⇒ Resources::Datasets
Access the Datasets resource.
-
#decks ⇒ Resources::Decks
Access the Decks resource.
-
#games ⇒ Resources::Games
Access the Games resource.
-
#initialize(api_key: nil, publishable_key: nil, secret_key: nil, access_token: nil, environment: nil, endpoint: nil, timeout: nil, open_timeout: nil, default_publisher: nil, default_game: nil, allowed_publishers: nil, allowed_games: nil, config: nil) ⇒ Client
constructor
Create a new CardDB client.
-
#me ⇒ Hash?
Get information about the current API key.
-
#publishers ⇒ Resources::Publishers
Access the Publishers resource.
-
#records ⇒ Resources::Records
Access the Records resource.
-
#rules ⇒ Resources::Rules
Access the Rules resource.
Constructor Details
#initialize(api_key: nil, publishable_key: nil, secret_key: nil, access_token: nil, environment: nil, endpoint: nil, timeout: nil, open_timeout: nil, default_publisher: nil, default_game: nil, allowed_publishers: nil, allowed_games: nil, config: nil) ⇒ Client
Create a new CardDB client.
rubocop:disable Metrics/ParameterLists
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/carddb/client.rb', line 39 def initialize( api_key: nil, publishable_key: nil, secret_key: nil, access_token: nil, environment: nil, endpoint: nil, timeout: nil, open_timeout: nil, default_publisher: nil, default_game: nil, allowed_publishers: nil, allowed_games: nil, config: nil ) @config = build_config( config: config, api_key: api_key, publishable_key: publishable_key, secret_key: secret_key, access_token: access_token, environment: environment, endpoint: endpoint, timeout: timeout, open_timeout: open_timeout, default_publisher: default_publisher, default_game: default_game, allowed_publishers: allowed_publishers, allowed_games: allowed_games ) @connection = Connection.new(@config) end |
Instance Attribute Details
#config ⇒ Configuration (readonly)
Returns The client configuration.
19 20 21 |
# File 'lib/carddb/client.rb', line 19 def config @config end |
#connection ⇒ Connection (readonly)
Returns The HTTP connection.
22 23 24 |
# File 'lib/carddb/client.rb', line 22 def connection @connection end |
Instance Method Details
#batch {|Batch| ... } ⇒ Array
Execute multiple queries in a single batch request.
136 137 138 139 140 |
# File 'lib/carddb/client.rb', line 136 def batch batch = Batch.new(self) yield batch batch.execute end |
#datasets ⇒ Resources::Datasets
Access the Datasets resource
90 91 92 |
# File 'lib/carddb/client.rb', line 90 def datasets @datasets ||= Resources::Datasets.new(self, connection, config) end |
#decks ⇒ Resources::Decks
Access the Decks resource
104 105 106 |
# File 'lib/carddb/client.rb', line 104 def decks @decks ||= Resources::Decks.new(self, connection, config) end |
#games ⇒ Resources::Games
Access the Games resource
83 84 85 |
# File 'lib/carddb/client.rb', line 83 def games @games ||= Resources::Games.new(self, connection, config) end |
#me ⇒ Hash?
Get information about the current API key
118 119 120 121 122 123 124 |
# File 'lib/carddb/client.rb', line 118 def me return nil unless config.effective_api_key || config.access_token query = QueryBuilder.fetch_me data = connection.execute(query, {}) data['fetchMe'] end |
#publishers ⇒ Resources::Publishers
Access the Publishers resource
76 77 78 |
# File 'lib/carddb/client.rb', line 76 def publishers @publishers ||= Resources::Publishers.new(self, connection, config) end |
#records ⇒ Resources::Records
Access the Records resource
97 98 99 |
# File 'lib/carddb/client.rb', line 97 def records @records ||= Resources::Records.new(self, connection, config) end |
#rules ⇒ Resources::Rules
Access the Rules resource
111 112 113 |
# File 'lib/carddb/client.rb', line 111 def rules @rules ||= Resources::Rules.new(self, connection, config) end |