Module: CardDB::QueryBuilder
- Defined in:
- lib/carddb/query_builder.rb
Overview
Builds GraphQL queries for the CardDB API. rubocop:disable Metrics/ModuleLength
Class Method Summary collapse
-
.create_deck ⇒ Object
Builds a deckCreate mutation.
-
.delete_deck ⇒ Object
Builds a deckDelete mutation.
-
.fetch_dataset_by_id ⇒ Object
Builds a fetchDataset query by id.
-
.fetch_dataset_by_keys ⇒ Object
Builds a fetchDataset query by keys (includes schema).
-
.fetch_datasets ⇒ Object
Builds a fetchDatasets batch query.
-
.fetch_deck ⇒ Object
Builds a fetchDeck query.
-
.fetch_deck_by_external_ref ⇒ Object
Builds a fetchDeckByExternalRef query.
-
.fetch_game_by_id ⇒ Object
Builds a fetchGame query by id.
-
.fetch_game_by_keys ⇒ Object
Builds a fetchGame query by publisher slug and game key.
-
.fetch_games ⇒ Object
Builds a fetchGames batch query.
-
.fetch_me ⇒ Object
Builds a fetchMe query.
-
.fetch_publisher_by_id ⇒ Object
Builds a fetchPublisher query (by id or slug).
-
.fetch_publisher_by_slug ⇒ Object
Builds a fetchPublisher query by slug.
-
.fetch_publishers ⇒ Object
Builds a fetchPublishers query.
-
.fetch_record ⇒ Object
Builds a fetchRecord query.
-
.fetch_record_by_identifier ⇒ Object
Builds a fetchRecordByIdentifier query.
-
.fetch_records ⇒ Object
Builds a fetchRecords query.
-
.fetch_records_by_identifier ⇒ Object
Builds a fetchRecordsByIdentifier query.
-
.list_my_decks(first: nil, after: nil) ⇒ Object
Builds a myDecks query.
-
.search_datasets(publisher_slug: nil, game_key: nil, search: nil, purpose: nil, first: nil, after: nil) ⇒ Object
Builds a searchDatasets query.
-
.search_games(publisher_slug: nil, search: nil, first: nil, after: nil) ⇒ Object
Builds a searchGames query.
-
.search_publishers(search: nil, first: nil, after: nil) ⇒ Object
Builds a searchPublishers query.
-
.search_records(publisher_slug:, game_key:, dataset_key:, filter: nil, search: nil, order_by: nil, resolve_links: nil, first: nil, after: nil, validate_schema: nil) ⇒ Object
Builds a searchRecords query.
-
.update_deck ⇒ Object
Builds a deckUpdate mutation.
Class Method Details
.create_deck ⇒ Object
Builds a deckCreate mutation
283 284 285 286 287 288 289 290 291 |
# File 'lib/carddb/query_builder.rb', line 283 def create_deck <<~GRAPHQL mutation DeckCreate($input: DeckCreateInput!) { deckCreate(input: $input) { #{deck_fields} } } GRAPHQL end |
.delete_deck ⇒ Object
Builds a deckDelete mutation
305 306 307 308 309 310 311 |
# File 'lib/carddb/query_builder.rb', line 305 def delete_deck <<~GRAPHQL mutation DeckDelete($id: UUID!) { deckDelete(id: $id) } GRAPHQL end |
.fetch_dataset_by_id ⇒ Object
Builds a fetchDataset query by id
131 132 133 134 135 136 137 138 139 140 |
# File 'lib/carddb/query_builder.rb', line 131 def fetch_dataset_by_id <<~GRAPHQL query FetchDataset($id: UUID!) { fetchDataset(id: $id) { #{dataset_fields} #{schema_fields} } } GRAPHQL end |
.fetch_dataset_by_keys ⇒ Object
Builds a fetchDataset query by keys (includes schema)
143 144 145 146 147 148 149 150 151 152 |
# File 'lib/carddb/query_builder.rb', line 143 def fetch_dataset_by_keys <<~GRAPHQL query FetchDataset($publisherSlug: String!, $gameKey: String!, $datasetKey: String!) { fetchDataset(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey) { #{dataset_fields} #{schema_fields} } } GRAPHQL end |
.fetch_datasets ⇒ Object
Builds a fetchDatasets batch query
155 156 157 158 159 160 161 162 163 |
# File 'lib/carddb/query_builder.rb', line 155 def fetch_datasets <<~GRAPHQL query FetchDatasets($ids: [UUID!]!) { fetchDatasets(ids: $ids) { #{dataset_fields} } } GRAPHQL end |
.fetch_deck ⇒ Object
Builds a fetchDeck query
261 262 263 264 265 266 267 268 269 |
# File 'lib/carddb/query_builder.rb', line 261 def fetch_deck <<~GRAPHQL query FetchDeck($id: UUID!) { fetchDeck(id: $id) { #{deck_fields} } } GRAPHQL end |
.fetch_deck_by_external_ref ⇒ Object
Builds a fetchDeckByExternalRef query
272 273 274 275 276 277 278 279 280 |
# File 'lib/carddb/query_builder.rb', line 272 def fetch_deck_by_external_ref <<~GRAPHQL query FetchDeckByExternalRef($externalRef: String!) { fetchDeckByExternalRef(externalRef: $externalRef) { #{deck_fields} } } GRAPHQL end |
.fetch_game_by_id ⇒ Object
Builds a fetchGame query by id
78 79 80 81 82 83 84 85 86 |
# File 'lib/carddb/query_builder.rb', line 78 def fetch_game_by_id <<~GRAPHQL query FetchGame($id: UUID!) { fetchGame(id: $id) { #{game_fields} } } GRAPHQL end |
.fetch_game_by_keys ⇒ Object
Builds a fetchGame query by publisher slug and game key
89 90 91 92 93 94 95 96 97 |
# File 'lib/carddb/query_builder.rb', line 89 def fetch_game_by_keys <<~GRAPHQL query FetchGame($publisherSlug: String!, $gameKey: String!) { fetchGame(publisherSlug: $publisherSlug, gameKey: $gameKey) { #{game_fields} } } GRAPHQL end |
.fetch_games ⇒ Object
Builds a fetchGames batch query
100 101 102 103 104 105 106 107 108 |
# File 'lib/carddb/query_builder.rb', line 100 def fetch_games <<~GRAPHQL query FetchGames($ids: [UUID!]!) { fetchGames(ids: $ids) { #{game_fields} } } GRAPHQL end |
.fetch_me ⇒ Object
Builds a fetchMe query
314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 |
# File 'lib/carddb/query_builder.rb', line 314 def fetch_me <<~GRAPHQL query FetchMe { fetchMe { application { id name description environment apiKeyPrefix allowedOrigins allowedIps createdAt updatedAt lastUsedAt } account { id displayName createdAt } } } GRAPHQL end |
.fetch_publisher_by_id ⇒ Object
Builds a fetchPublisher query (by id or slug)
27 28 29 30 31 32 33 34 35 |
# File 'lib/carddb/query_builder.rb', line 27 def fetch_publisher_by_id <<~GRAPHQL query FetchPublisher($id: UUID!) { fetchPublisher(id: $id) { #{publisher_fields} } } GRAPHQL end |
.fetch_publisher_by_slug ⇒ Object
Builds a fetchPublisher query by slug
38 39 40 41 42 43 44 45 46 |
# File 'lib/carddb/query_builder.rb', line 38 def fetch_publisher_by_slug <<~GRAPHQL query FetchPublisher($slug: String!) { fetchPublisher(slug: $slug) { #{publisher_fields} } } GRAPHQL end |
.fetch_publishers ⇒ Object
Builds a fetchPublishers query
49 50 51 52 53 54 55 56 57 |
# File 'lib/carddb/query_builder.rb', line 49 def fetch_publishers <<~GRAPHQL query FetchPublishers($slugs: [String!]!) { fetchPublishers(slugs: $slugs) { #{publisher_fields} } } GRAPHQL end |
.fetch_record ⇒ Object
Builds a fetchRecord query
226 227 228 229 230 231 232 233 234 |
# File 'lib/carddb/query_builder.rb', line 226 def fetch_record <<~GRAPHQL query FetchRecord($id: UUID!) { fetchRecord(id: $id) { #{record_fields} } } GRAPHQL end |
.fetch_record_by_identifier ⇒ Object
Builds a fetchRecordByIdentifier query
204 205 206 207 208 209 210 211 212 |
# File 'lib/carddb/query_builder.rb', line 204 def fetch_record_by_identifier <<~GRAPHQL query FetchRecordByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifier: String!) { fetchRecordByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifier: $identifier) { #{record_fields} } } GRAPHQL end |
.fetch_records ⇒ Object
Builds a fetchRecords query
237 238 239 240 241 242 243 244 245 |
# File 'lib/carddb/query_builder.rb', line 237 def fetch_records <<~GRAPHQL query FetchRecords($ids: [UUID!]!) { fetchRecords(ids: $ids) { #{record_fields} } } GRAPHQL end |
.fetch_records_by_identifier ⇒ Object
Builds a fetchRecordsByIdentifier query
215 216 217 218 219 220 221 222 223 |
# File 'lib/carddb/query_builder.rb', line 215 def fetch_records_by_identifier <<~GRAPHQL query FetchRecordsByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifiers: [String!]!) { fetchRecordsByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifiers: $identifiers) { #{record_fields} } } GRAPHQL end |
.list_my_decks(first: nil, after: nil) ⇒ Object
Builds a myDecks query
248 249 250 251 252 253 254 255 256 257 258 |
# File 'lib/carddb/query_builder.rb', line 248 def list_my_decks(first: nil, after: nil) args = build_args({ first: first, after: after }) <<~GRAPHQL query MyDecks#{args[:definition]} { myDecks#{args[:call]} { #{deck_connection_fields} } } GRAPHQL end |
.search_datasets(publisher_slug: nil, game_key: nil, search: nil, purpose: nil, first: nil, after: nil) ⇒ Object
Builds a searchDatasets query
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/carddb/query_builder.rb', line 111 def search_datasets(publisher_slug: nil, game_key: nil, search: nil, purpose: nil, first: nil, after: nil) args = build_args({ publisherSlug: publisher_slug, gameKey: game_key, search: search, purpose: purpose, first: first, after: after }) <<~GRAPHQL query SearchDatasets#{args[:definition]} { searchDatasets#{args[:call]} { #{dataset_connection_fields} } } GRAPHQL end |
.search_games(publisher_slug: nil, search: nil, first: nil, after: nil) ⇒ Object
Builds a searchGames query
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/carddb/query_builder.rb', line 60 def search_games(publisher_slug: nil, search: nil, first: nil, after: nil) args = build_args({ publisherSlug: publisher_slug, search: search, first: first, after: after }) <<~GRAPHQL query SearchGames#{args[:definition]} { searchGames#{args[:call]} { #{game_connection_fields} } } GRAPHQL end |
.search_publishers(search: nil, first: nil, after: nil) ⇒ Object
Builds a searchPublishers query
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/carddb/query_builder.rb', line 10 def search_publishers(search: nil, first: nil, after: nil) args = build_args({ search: search, first: first, after: after }) <<~GRAPHQL query SearchPublishers#{args[:definition]} { searchPublishers#{args[:call]} { #{publisher_connection_fields} } } GRAPHQL end |
.search_records(publisher_slug:, game_key:, dataset_key:, filter: nil, search: nil, order_by: nil, resolve_links: nil, first: nil, after: nil, validate_schema: nil) ⇒ Object
Builds a searchRecords query
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# File 'lib/carddb/query_builder.rb', line 166 def search_records( publisher_slug:, game_key:, dataset_key:, filter: nil, search: nil, order_by: nil, resolve_links: nil, first: nil, after: nil, validate_schema: nil ) args = build_args( { publisherSlug: publisher_slug, gameKey: game_key, datasetKey: dataset_key, filter: filter, search: search, orderBy: order_by, resolveLinks: resolve_links, first: first, after: after, validateSchema: validate_schema }, required: %i[publisherSlug gameKey datasetKey] ) <<~GRAPHQL query SearchRecords#{args[:definition]} { searchRecords#{args[:call]} { #{record_connection_fields(include_resolved_links: resolve_links&.any?)} } } GRAPHQL end |
.update_deck ⇒ Object
Builds a deckUpdate mutation
294 295 296 297 298 299 300 301 302 |
# File 'lib/carddb/query_builder.rb', line 294 def update_deck <<~GRAPHQL mutation DeckUpdate($id: UUID!, $input: DeckUpdateInput!) { deckUpdate(id: $id, input: $input) { #{deck_fields} } } GRAPHQL end |