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.
-
#exports ⇒ Resources::Exports
Access the Exports resource.
-
#files ⇒ Resources::Files
Access the Files resource.
-
#games ⇒ Resources::Games
Access the Games resource.
-
#import_formats ⇒ Resources::ImportFormats
Access the Import Formats resource.
-
#imports ⇒ Resources::Imports
Access the Imports 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.
164 165 166 167 168 |
# File 'lib/carddb/client.rb', line 164 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
132 133 134 |
# File 'lib/carddb/client.rb', line 132 def decks @decks ||= Resources::Decks.new(self, connection, config) end |
#exports ⇒ Resources::Exports
Access the Exports resource
118 119 120 |
# File 'lib/carddb/client.rb', line 118 def exports @exports ||= Resources::Exports.new(self, connection, config) end |
#files ⇒ Resources::Files
Access the Files resource
125 126 127 |
# File 'lib/carddb/client.rb', line 125 def files @files ||= Resources::Files.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 |
#import_formats ⇒ Resources::ImportFormats
Access the Import Formats resource
104 105 106 |
# File 'lib/carddb/client.rb', line 104 def import_formats @import_formats ||= Resources::ImportFormats.new(self, connection, config) end |
#imports ⇒ Resources::Imports
Access the Imports resource
111 112 113 |
# File 'lib/carddb/client.rb', line 111 def imports @imports ||= Resources::Imports.new(self, connection, config) end |
#me ⇒ Hash?
Get information about the current API key
146 147 148 149 150 151 152 |
# File 'lib/carddb/client.rb', line 146 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
139 140 141 |
# File 'lib/carddb/client.rb', line 139 def rules @rules ||= Resources::Rules.new(self, connection, config) end |