Module: CardDB::Rails::GraphQL::Helpers
- Defined in:
- lib/carddb/rails/graphql/helpers.rb
Instance Method Summary collapse
- #carddb_dataset_dataloader_field(name, type:, dataset_key:, publisher_slug: nil, game_key: nil, client: nil, null: true, description: nil) ⇒ Object
- #carddb_dataset_field(name, type:, dataset_key:, publisher_slug: nil, game_key: nil, client: nil, null: true, description: nil) ⇒ Object
- #carddb_datasets_dataloader_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: false, description: nil) ⇒ Object
- #carddb_datasets_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: false, description: nil) ⇒ Object
- #carddb_deck_dataloader_field(name, type:, id: nil, external_ref: nil, client: nil, null: true, description: nil) ⇒ Object
- #carddb_deck_field(name, type:, id: nil, external_ref: nil, client: nil, null: true, description: nil) ⇒ Object
- #carddb_game_dataloader_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: true, description: nil) ⇒ Object
- #carddb_game_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: true, description: nil) ⇒ Object
- #carddb_publisher_dataloader_field(name, type:, slug:, client: nil, null: true, description: nil) ⇒ Object
- #carddb_publisher_field(name, type:, slug:, client: nil, null: true, description: nil) ⇒ Object
- #carddb_record_dataloader_field(name, type:, identifier:, dataset_key:, publisher_slug: nil, game_key: nil, null: true, client: nil, description: nil) ⇒ Object
- #carddb_record_field(name, type:, identifier:, dataset_key:, publisher_slug: nil, game_key: nil, null: true, client: nil, description: nil) ⇒ Object
Instance Method Details
#carddb_dataset_dataloader_field(name, type:, dataset_key:, publisher_slug: nil, game_key: nil, client: nil, null: true, description: nil) ⇒ Object
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 115 def carddb_dataset_dataloader_field(name, type:, dataset_key:, publisher_slug: nil, game_key: nil, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_dataset_key = CardDB::Rails::Resolver.resolve_graphql_value(self, dataset_key) return nil if resolved_dataset_key.nil? || resolved_dataset_key == '' dataloader.with( CardDB::Rails::GraphQL::Dataloader::DatasetSource, publisher_slug: publisher_slug, game_key: game_key, client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_dataset_key) end end |
#carddb_dataset_field(name, type:, dataset_key:, publisher_slug: nil, game_key: nil, client: nil, null: true, description: nil) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 99 def carddb_dataset_field(name, type:, dataset_key:, publisher_slug: nil, game_key: nil, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_dataset_key = CardDB::Rails::Resolver.resolve_graphql_value(self, dataset_key) return nil if resolved_dataset_key.nil? || resolved_dataset_key == '' CardDB::Rails::GraphQL::DatasetLoader.for( publisher_slug: publisher_slug, game_key: game_key, client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_dataset_key) end end |
#carddb_datasets_dataloader_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: false, description: nil) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 76 def carddb_datasets_dataloader_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: false, description: nil) field name, type, null: null, description: description define_method(name) do return object.carddb_datasets if object.respond_to?(:carddb_datasets) && object.respond_to?(:carddb_dataset) loader_client = CardDB::Rails::Resolver.resolve_graphql_client(self, client) || CardDB::Rails.client resolved_game_key = CardDB::Rails::Resolver.resolve_graphql_value(self, game_key) resolved_publisher_slug = loader_client.config.resolve_publisher( CardDB::Rails::Resolver.resolve_graphql_value(self, publisher_slug) ) raise ArgumentError, 'publisher_slug is required (no default configured)' if resolved_publisher_slug.nil? || resolved_publisher_slug == '' raise ArgumentError, 'game_key is required' if resolved_game_key.nil? || resolved_game_key == '' loader_client.datasets.search( publisher_slug: resolved_publisher_slug, game_key: resolved_game_key ) end end |
#carddb_datasets_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: false, description: nil) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 53 def carddb_datasets_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: false, description: nil) field name, type, null: null, description: description define_method(name) do return object.carddb_datasets if object.respond_to?(:carddb_datasets) && object.respond_to?(:carddb_dataset) loader_client = CardDB::Rails::Resolver.resolve_graphql_client(self, client) || CardDB::Rails.client resolved_game_key = CardDB::Rails::Resolver.resolve_graphql_value(self, game_key) resolved_publisher_slug = loader_client.config.resolve_publisher( CardDB::Rails::Resolver.resolve_graphql_value(self, publisher_slug) ) raise ArgumentError, 'publisher_slug is required (no default configured)' if resolved_publisher_slug.nil? || resolved_publisher_slug == '' raise ArgumentError, 'game_key is required' if resolved_game_key.nil? || resolved_game_key == '' loader_client.datasets.search( publisher_slug: resolved_publisher_slug, game_key: resolved_game_key ) end end |
#carddb_deck_dataloader_field(name, type:, id: nil, external_ref: nil, client: nil, null: true, description: nil) ⇒ Object
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 195 def carddb_deck_dataloader_field(name, type:, id: nil, external_ref: nil, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_client = CardDB::Rails::Resolver.resolve_graphql_client(self, client) resolved_id = CardDB::Rails::Resolver.resolve_graphql_value(self, id) resolved_external_ref = CardDB::Rails::Resolver.resolve_graphql_value(self, external_ref) if resolved_id && resolved_id != '' dataloader.with( CardDB::Rails::GraphQL::Dataloader::DeckSource, client: resolved_client ).load(resolved_id) elsif resolved_external_ref && resolved_external_ref != '' dataloader.with( CardDB::Rails::GraphQL::Dataloader::DeckByExternalRefSource, client: resolved_client ).load(resolved_external_ref) end end end |
#carddb_deck_field(name, type:, id: nil, external_ref: nil, client: nil, null: true, description: nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 7 def carddb_deck_field(name, type:, id: nil, external_ref: nil, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_client = CardDB::Rails::Resolver.resolve_graphql_client(self, client) resolved_id = CardDB::Rails::Resolver.resolve_graphql_value(self, id) resolved_external_ref = CardDB::Rails::Resolver.resolve_graphql_value(self, external_ref) if resolved_id && resolved_id != '' CardDB::Rails::GraphQL::DeckLoader.for(client: resolved_client).load(resolved_id) elsif resolved_external_ref && resolved_external_ref != '' CardDB::Rails::GraphQL::DeckByExternalRefLoader.for(client: resolved_client).load(resolved_external_ref) end end end |
#carddb_game_dataloader_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: true, description: nil) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 37 def carddb_game_dataloader_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_game_key = CardDB::Rails::Resolver.resolve_graphql_value(self, game_key) return nil if resolved_game_key.nil? || resolved_game_key == '' dataloader.with( CardDB::Rails::GraphQL::Dataloader::GameSource, publisher_slug: publisher_slug, client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_game_key) end end |
#carddb_game_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: true, description: nil) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 23 def carddb_game_field(name, type:, game_key:, publisher_slug: nil, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_game_key = CardDB::Rails::Resolver.resolve_graphql_value(self, game_key) return nil if resolved_game_key.nil? || resolved_game_key == '' CardDB::Rails::GraphQL::GameLoader.for( publisher_slug: publisher_slug, client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_game_key) end end |
#carddb_publisher_dataloader_field(name, type:, slug:, client: nil, null: true, description: nil) ⇒ Object
145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 145 def carddb_publisher_dataloader_field(name, type:, slug:, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_slug = CardDB::Rails::Resolver.resolve_graphql_value(self, slug) return nil if resolved_slug.nil? || resolved_slug == '' dataloader.with( CardDB::Rails::GraphQL::Dataloader::PublisherSource, client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_slug) end end |
#carddb_publisher_field(name, type:, slug:, client: nil, null: true, description: nil) ⇒ Object
132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 132 def carddb_publisher_field(name, type:, slug:, client: nil, null: true, description: nil) field name, type, null: null, description: description define_method(name) do resolved_slug = CardDB::Rails::Resolver.resolve_graphql_value(self, slug) return nil if resolved_slug.nil? || resolved_slug == '' CardDB::Rails::GraphQL::PublisherLoader.for( client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_slug) end end |
#carddb_record_dataloader_field(name, type:, identifier:, dataset_key:, publisher_slug: nil, game_key: nil, null: true, client: nil, description: nil) ⇒ Object
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 177 def carddb_record_dataloader_field(name, type:, identifier:, dataset_key:, publisher_slug: nil, game_key: nil, null: true, client: nil, description: nil) field name, type, null: null, description: description define_method(name) do resolved_identifier = CardDB::Rails::Resolver.resolve_graphql_value(self, identifier) return nil if resolved_identifier.nil? || resolved_identifier == '' dataloader.with( CardDB::Rails::GraphQL::Dataloader::RecordSource, dataset_key: dataset_key, publisher_slug: publisher_slug, game_key: game_key, client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_identifier) end end |
#carddb_record_field(name, type:, identifier:, dataset_key:, publisher_slug: nil, game_key: nil, null: true, client: nil, description: nil) ⇒ Object
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'lib/carddb/rails/graphql/helpers.rb', line 159 def carddb_record_field(name, type:, identifier:, dataset_key:, publisher_slug: nil, game_key: nil, null: true, client: nil, description: nil) field name, type, null: null, description: description define_method(name) do resolved_identifier = CardDB::Rails::Resolver.resolve_graphql_value(self, identifier) return nil if resolved_identifier.nil? || resolved_identifier == '' CardDB::Rails::GraphQL::RecordLoader.for( dataset_key: dataset_key, publisher_slug: publisher_slug, game_key: game_key, client: CardDB::Rails::Resolver.resolve_graphql_client(self, client) ).load(resolved_identifier) end end |