carddb 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '086e1a7e2dff325fbe85352d4d98490bec499ac25601bd69c02d90bda39b47d4'
4
- data.tar.gz: e383f2399ab4a45e1b740c056de488ea9f2abb450041ec6945fa8d8766355713
3
+ metadata.gz: 95339c7a41f87063b7543aff563ae04f955d59de9f3e5f5ee5f4be020f3897f1
4
+ data.tar.gz: 370d681dea20285ea2f4429d027733a7dd175c241a773feb6fccaa0e52ccdf37
5
5
  SHA512:
6
- metadata.gz: 607ac570111283d6a8eb4c86531ec9d372955e11b0eb12ad50dc057926f69cc2db472bb2e07465328c8ce2956f1e589042168b96fadaea8413b3b50d201bee39
7
- data.tar.gz: 15ec236e12e5784c615680f4221757f29a4535e67e412a159e0f83f7d55e85964b5131677ca0aaf5f5286cba67df1255b61ed0af6e9937c709cf7e08749334ab
6
+ metadata.gz: e40e127c9afcd40e408f6417c56f64d99f7841b97ee5580702cb6d77f4c632a4a28c037b4164f87c37f281f9dbe36b1eb5ecf3fc11c8dc185742f17941937648
7
+ data.tar.gz: ba3d0d3b825e0d8eef8b2ba48767375d78fcee011e6572026557ef3a588335f7beb9b762b8632d390d0762f0c7ba76b9687ba80ac55c1a89ccfea8bf86ed7aad
data/.rspec_status CHANGED
@@ -1,47 +1,47 @@
1
1
  example_id | status | run_time |
2
2
  ------------------------------------------------- | ------ | --------------- |
3
- ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.00037 seconds |
4
- ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00004 seconds |
3
+ ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.0002 seconds |
4
+ ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00005 seconds |
5
5
  ./spec/carddb/client_spec.rb[1:1:3] | passed | 0.00003 seconds |
6
- ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00029 seconds |
7
- ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00025 seconds |
8
- ./spec/carddb/client_spec.rb[1:3:1] | passed | 0.00003 seconds |
6
+ ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00013 seconds |
7
+ ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00016 seconds |
8
+ ./spec/carddb/client_spec.rb[1:3:1] | passed | 0.00004 seconds |
9
9
  ./spec/carddb/client_spec.rb[1:4:1] | passed | 0.00003 seconds |
10
- ./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00003 seconds |
10
+ ./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00004 seconds |
11
11
  ./spec/carddb/client_spec.rb[1:6:1] | passed | 0.00003 seconds |
12
- ./spec/carddb/client_spec.rb[1:7:1] | passed | 0.00025 seconds |
13
- ./spec/carddb/client_spec.rb[1:7:2] | passed | 0.00859 seconds |
14
- ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00006 seconds |
12
+ ./spec/carddb/client_spec.rb[1:7:1] | passed | 0.00023 seconds |
13
+ ./spec/carddb/client_spec.rb[1:7:2] | passed | 0.01089 seconds |
14
+ ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00005 seconds |
15
15
  ./spec/carddb/collection_spec.rb[2:1:1] | passed | 0.00003 seconds |
16
- ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.0055 seconds |
17
- ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00016 seconds |
18
- ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00041 seconds |
19
- ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.00035 seconds |
20
- ./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00005 seconds |
21
- ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.0005 seconds |
22
- ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00014 seconds |
23
- ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00014 seconds |
16
+ ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.00191 seconds |
17
+ ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00012 seconds |
18
+ ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00032 seconds |
19
+ ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.00031 seconds |
20
+ ./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00012 seconds |
21
+ ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.00012 seconds |
22
+ ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00013 seconds |
23
+ ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00013 seconds |
24
24
  ./spec/carddb/collection_spec.rb[4:1:4] | passed | 0.00004 seconds |
25
25
  ./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00003 seconds |
26
26
  ./spec/carddb/configuration_spec.rb[1:1:2] | passed | 0.00003 seconds |
27
27
  ./spec/carddb/configuration_spec.rb[1:1:3] | passed | 0.00003 seconds |
28
28
  ./spec/carddb/configuration_spec.rb[1:1:4] | passed | 0.00003 seconds |
29
- ./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00003 seconds |
29
+ ./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00008 seconds |
30
30
  ./spec/carddb/configuration_spec.rb[1:1:6] | passed | 0.00003 seconds |
31
- ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00004 seconds |
32
- ./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
33
- ./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.00005 seconds |
34
- ./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
31
+ ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00003 seconds |
32
+ ./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00003 seconds |
33
+ ./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.00004 seconds |
34
+ ./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00003 seconds |
35
35
  ./spec/carddb/configuration_spec.rb[1:3:2:1] | passed | 0.00003 seconds |
36
36
  ./spec/carddb/configuration_spec.rb[1:3:2:2] | passed | 0.00004 seconds |
37
- ./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00004 seconds |
37
+ ./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00003 seconds |
38
38
  ./spec/carddb/configuration_spec.rb[1:4:1] | passed | 0.00003 seconds |
39
39
  ./spec/carddb/configuration_spec.rb[1:4:2] | passed | 0.00003 seconds |
40
40
  ./spec/carddb/configuration_spec.rb[1:5:1] | passed | 0.00004 seconds |
41
- ./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
42
- ./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.00004 seconds |
43
- ./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
44
- ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00004 seconds |
41
+ ./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00003 seconds |
42
+ ./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.00003 seconds |
43
+ ./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.00004 seconds |
44
+ ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00008 seconds |
45
45
  ./spec/carddb/filter_builder_spec.rb[1:1:5] | passed | 0.00003 seconds |
46
46
  ./spec/carddb/filter_builder_spec.rb[1:1:6] | passed | 0.00003 seconds |
47
47
  ./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.00003 seconds |
@@ -50,63 +50,67 @@ example_id | status | run_time |
50
50
  ./spec/carddb/filter_builder_spec.rb[1:2:2] | passed | 0.00003 seconds |
51
51
  ./spec/carddb/filter_builder_spec.rb[1:2:3] | passed | 0.00003 seconds |
52
52
  ./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00003 seconds |
53
- ./spec/carddb/filter_builder_spec.rb[1:2:5] | passed | 0.00004 seconds |
54
- ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00006 seconds |
55
- ./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.00003 seconds |
56
- ./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.00003 seconds |
57
- ./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00008 seconds |
53
+ ./spec/carddb/filter_builder_spec.rb[1:2:5] | passed | 0.00003 seconds |
54
+ ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00002 seconds |
55
+ ./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.00007 seconds |
56
+ ./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.00004 seconds |
57
+ ./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00003 seconds |
58
58
  ./spec/carddb/filter_builder_spec.rb[1:2:10] | passed | 0.00003 seconds |
59
- ./spec/carddb/filter_builder_spec.rb[1:2:11] | passed | 0.00002 seconds |
60
- ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00003 seconds |
61
- ./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.00002 seconds |
59
+ ./spec/carddb/filter_builder_spec.rb[1:2:11] | passed | 0.00003 seconds |
60
+ ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00005 seconds |
61
+ ./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.00004 seconds |
62
62
  ./spec/carddb/query_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
63
63
  ./spec/carddb/query_builder_spec.rb[1:1:2] | passed | 0.00004 seconds |
64
- ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.00394 seconds |
65
- ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.00431 seconds |
66
- ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00428 seconds |
67
- ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.00429 seconds |
68
- ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.00472 seconds |
69
- ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.00443 seconds |
70
- ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00398 seconds |
71
- ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00432 seconds |
72
- ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.00428 seconds |
73
- ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.0041 seconds |
74
- ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.00435 seconds |
75
- ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00439 seconds |
76
- ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.00417 seconds |
77
- ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00405 seconds |
78
- ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00427 seconds |
79
- ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.0041 seconds |
80
- ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.004 seconds |
81
- ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00408 seconds |
82
- ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.00408 seconds |
83
- ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00395 seconds |
84
- ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00416 seconds |
85
- ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.0041 seconds |
86
- ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.00393 seconds |
87
- ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.00398 seconds |
88
- ./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.00007 seconds |
89
- ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.00419 seconds |
90
- ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.00414 seconds |
91
- ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.00399 seconds |
92
- ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.00412 seconds |
93
- ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00399 seconds |
94
- ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.0039 seconds |
95
- ./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.00011 seconds |
64
+ ./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00062 seconds |
65
+ ./spec/carddb/query_builder_spec.rb[1:2:1:1] | passed | 0.00005 seconds |
66
+ ./spec/carddb/query_builder_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
67
+ ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.00385 seconds |
68
+ ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.0037 seconds |
69
+ ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00376 seconds |
70
+ ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.00386 seconds |
71
+ ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.00381 seconds |
72
+ ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.00403 seconds |
73
+ ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00388 seconds |
74
+ ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00365 seconds |
75
+ ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.00386 seconds |
76
+ ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.00367 seconds |
77
+ ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.00401 seconds |
78
+ ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00386 seconds |
79
+ ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.00363 seconds |
80
+ ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00398 seconds |
81
+ ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00382 seconds |
82
+ ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.00371 seconds |
83
+ ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00387 seconds |
84
+ ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00376 seconds |
85
+ ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.00398 seconds |
86
+ ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00383 seconds |
87
+ ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00383 seconds |
88
+ ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.00412 seconds |
89
+ ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.00398 seconds |
90
+ ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.00368 seconds |
91
+ ./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.00006 seconds |
92
+ ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.00407 seconds |
93
+ ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.0039 seconds |
94
+ ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.00375 seconds |
95
+ ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.00382 seconds |
96
+ ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00366 seconds |
97
+ ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.00402 seconds |
98
+ ./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.00013 seconds |
96
99
  ./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00004 seconds |
97
- ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.00448 seconds |
98
- ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.0037 seconds |
99
- ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.0038 seconds |
100
- ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.00016 seconds |
101
- ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.00431 seconds |
100
+ ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.00392 seconds |
101
+ ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.00366 seconds |
102
+ ./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.00403 seconds |
103
+ ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.00388 seconds |
104
+ ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.00011 seconds |
105
+ ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.00367 seconds |
102
106
  ./spec/carddb/resources/records_spec.rb[1:4:2] | passed | 0.00005 seconds |
103
- ./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.00011 seconds |
104
- ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.00408 seconds |
105
- ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00417 seconds |
106
- ./spec/carddb_spec.rb[1:1] | passed | 0.00004 seconds |
107
- ./spec/carddb_spec.rb[1:2:1] | passed | 0.00003 seconds |
107
+ ./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.00009 seconds |
108
+ ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.00391 seconds |
109
+ ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00372 seconds |
110
+ ./spec/carddb_spec.rb[1:1] | passed | 0.00008 seconds |
111
+ ./spec/carddb_spec.rb[1:2:1] | passed | 0.00005 seconds |
108
112
  ./spec/carddb_spec.rb[1:3:1] | passed | 0.00003 seconds |
109
113
  ./spec/carddb_spec.rb[1:4:1] | passed | 0.00004 seconds |
110
- ./spec/carddb_spec.rb[1:5:1] | passed | 0.00005 seconds |
111
- ./spec/carddb_spec.rb[1:6:1] | passed | 0.00005 seconds |
112
- ./spec/carddb_spec.rb[1:7:1] | passed | 0.00004 seconds |
114
+ ./spec/carddb_spec.rb[1:5:1] | passed | 0.00003 seconds |
115
+ ./spec/carddb_spec.rb[1:6:1] | passed | 0.00003 seconds |
116
+ ./spec/carddb_spec.rb[1:7:1] | passed | 0.00003 seconds |
@@ -436,6 +436,10 @@ module CardDB
436
436
  data['purpose']
437
437
  end
438
438
 
439
+ def tcgplayer_product_id_field_key
440
+ data['tcgplayerProductIdFieldKey']
441
+ end
442
+
439
443
  def visibility
440
444
  data['visibility']
441
445
  end
@@ -531,10 +535,11 @@ module CardDB
531
535
  #
532
536
  # @param first [Integer, nil] Maximum number of results
533
537
  # @param filter [Hash, nil] Filter conditions (alternative to block)
538
+ # @param include_pricing [Boolean] Include live TCGPlayer pricing when configured
534
539
  # @yield [FilterBuilder] Optional block for filter DSL
535
540
  # @return [Collection<Record>] Collection of records
536
541
  # @raise [CardDB::Error] If no client is available
537
- def records(first: nil, filter: nil, &block)
542
+ def records(first: nil, filter: nil, include_pricing: false, &block)
538
543
  raise Error, 'No client available to fetch records' unless client
539
544
 
540
545
  publisher_slug = publisher&.[]('slug')
@@ -549,6 +554,7 @@ module CardDB
549
554
  dataset_key: key,
550
555
  first: first,
551
556
  filter: filter,
557
+ include_pricing: include_pricing,
552
558
  &block
553
559
  )
554
560
  end
@@ -707,6 +713,10 @@ module CardDB
707
713
  @resolved_links ||= parse_resolved_links
708
714
  end
709
715
 
716
+ def pricing
717
+ data['pricing']
718
+ end
719
+
710
720
  def created_at
711
721
  parse_time(data['createdAt'])
712
722
  end
@@ -165,6 +165,7 @@ module CardDB
165
165
  end
166
166
 
167
167
  # Builds a searchRecords query
168
+ # rubocop:disable Metrics/ParameterLists
168
169
  def search_records(
169
170
  publisher_slug:,
170
171
  game_key:,
@@ -175,7 +176,8 @@ module CardDB
175
176
  resolve_links: nil,
176
177
  first: nil,
177
178
  after: nil,
178
- validate_schema: nil
179
+ validate_schema: nil,
180
+ include_pricing: false
179
181
  )
180
182
  args = build_args(
181
183
  {
@@ -196,51 +198,55 @@ module CardDB
196
198
  <<~GRAPHQL
197
199
  query SearchRecords#{args[:definition]} {
198
200
  searchRecords#{args[:call]} {
199
- #{record_connection_fields(include_resolved_links: resolve_links&.any?)}
201
+ #{record_connection_fields(
202
+ include_resolved_links: resolve_links&.any?,
203
+ include_pricing: include_pricing
204
+ )}
200
205
  }
201
206
  }
202
207
  GRAPHQL
203
208
  end
209
+ # rubocop:enable Metrics/ParameterLists
204
210
 
205
211
  # Builds a fetchRecordByIdentifier query
206
- def fetch_record_by_identifier
212
+ def fetch_record_by_identifier(include_pricing: false)
207
213
  <<~GRAPHQL
208
214
  query FetchRecordByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifier: String!) {
209
215
  fetchRecordByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifier: $identifier) {
210
- #{record_fields}
216
+ #{record_fields(include_pricing: include_pricing)}
211
217
  }
212
218
  }
213
219
  GRAPHQL
214
220
  end
215
221
 
216
222
  # Builds a fetchRecordsByIdentifier query
217
- def fetch_records_by_identifier
223
+ def fetch_records_by_identifier(include_pricing: false)
218
224
  <<~GRAPHQL
219
225
  query FetchRecordsByIdentifier($publisherSlug: String!, $gameKey: String!, $datasetKey: String!, $identifiers: [String!]!) {
220
226
  fetchRecordsByIdentifier(publisherSlug: $publisherSlug, gameKey: $gameKey, datasetKey: $datasetKey, identifiers: $identifiers) {
221
- #{record_fields}
227
+ #{record_fields(include_pricing: include_pricing)}
222
228
  }
223
229
  }
224
230
  GRAPHQL
225
231
  end
226
232
 
227
233
  # Builds a fetchRecord query
228
- def fetch_record
234
+ def fetch_record(include_pricing: false)
229
235
  <<~GRAPHQL
230
236
  query FetchRecord($id: UUID!) {
231
237
  fetchRecord(id: $id) {
232
- #{record_fields}
238
+ #{record_fields(include_pricing: include_pricing)}
233
239
  }
234
240
  }
235
241
  GRAPHQL
236
242
  end
237
243
 
238
244
  # Builds a fetchRecords query
239
- def fetch_records
245
+ def fetch_records(include_pricing: false)
240
246
  <<~GRAPHQL
241
247
  query FetchRecords($ids: [UUID!]!) {
242
248
  fetchRecords(ids: $ids) {
243
- #{record_fields}
249
+ #{record_fields(include_pricing: include_pricing)}
244
250
  }
245
251
  }
246
252
  GRAPHQL
@@ -607,6 +613,7 @@ module CardDB
607
613
  name
608
614
  description
609
615
  purpose
616
+ tcgplayerProductIdFieldKey
610
617
  visibility
611
618
  isArchived
612
619
  createdAt
@@ -687,11 +694,14 @@ module CardDB
687
694
  FIELDS
688
695
  end
689
696
 
690
- def record_fields
697
+ def record_fields(include_pricing: false)
698
+ pricing_fields = include_pricing ? tcgplayer_pricing_fields : ''
699
+
691
700
  <<~FIELDS
692
701
  id
693
702
  datasetId
694
703
  data
704
+ #{pricing_fields}
695
705
  createdAt
696
706
  updatedAt
697
707
  dataset {
@@ -704,7 +714,23 @@ module CardDB
704
714
  FIELDS
705
715
  end
706
716
 
707
- def record_connection_fields(include_resolved_links: false)
717
+ def tcgplayer_pricing_fields
718
+ <<~FIELDS
719
+ pricing {
720
+ productId
721
+ prices {
722
+ subTypeName
723
+ lowPrice
724
+ midPrice
725
+ highPrice
726
+ marketPrice
727
+ directLowPrice
728
+ }
729
+ }
730
+ FIELDS
731
+ end
732
+
733
+ def record_connection_fields(include_resolved_links: false, include_pricing: false)
708
734
  resolved_links_field = if include_resolved_links
709
735
  <<~FIELDS
710
736
  resolvedLinks {
@@ -733,7 +759,7 @@ module CardDB
733
759
  edges {
734
760
  cursor
735
761
  node {
736
- #{record_fields}
762
+ #{record_fields(include_pricing: include_pricing)}
737
763
  #{resolved_links_field}
738
764
  }
739
765
  }
@@ -18,6 +18,7 @@ module CardDB
18
18
  # @param first [Integer, nil] Maximum number of results
19
19
  # @param after [String, nil] Cursor for pagination
20
20
  # @param validate_schema [Boolean, nil] Whether to validate against schema
21
+ # @param include_pricing [Boolean] Include live TCGPlayer pricing when configured
21
22
  # @yield [FilterBuilder] Optional block for filter DSL
22
23
  # @return [Collection<Record>] Collection of records
23
24
  #
@@ -35,7 +36,7 @@ module CardDB
35
36
  # dataset_key: "cards",
36
37
  # filter: { "type" => "creature" }
37
38
  # )
38
- # rubocop:disable Metrics/MethodLength
39
+ # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists
39
40
  def search(
40
41
  dataset_key:,
41
42
  publisher_slug: nil,
@@ -47,6 +48,7 @@ module CardDB
47
48
  first: nil,
48
49
  after: nil,
49
50
  validate_schema: nil,
51
+ include_pricing: false,
50
52
  &block
51
53
  )
52
54
  resolved_publisher = resolve_publisher(publisher_slug)
@@ -71,7 +73,8 @@ module CardDB
71
73
  resolve_links: resolve_links,
72
74
  first: first,
73
75
  after: after,
74
- validate_schema: validate_schema
76
+ validate_schema: validate_schema,
77
+ include_pricing: include_pricing
75
78
  )
76
79
 
77
80
  variables = build_variables(
@@ -99,7 +102,8 @@ module CardDB
99
102
  order_by: order_by,
100
103
  resolve_links: resolve_links,
101
104
  first: first,
102
- validate_schema: validate_schema
105
+ validate_schema: validate_schema,
106
+ include_pricing: include_pricing
103
107
  }
104
108
 
105
109
  next_page_loader = lambda do |cursor|
@@ -113,17 +117,18 @@ module CardDB
113
117
  client: client
114
118
  )
115
119
  end
116
- # rubocop:enable Metrics/MethodLength
120
+ # rubocop:enable Metrics/MethodLength, Metrics/ParameterLists
117
121
 
118
122
  # Fetch a single record by ID
119
123
  #
120
124
  # @param id [String] The record UUID
121
125
  # @param cache [Boolean, nil] Whether to cache (nil = use config setting)
126
+ # @param include_pricing [Boolean] Include live TCGPlayer pricing when configured
122
127
  # @return [Record, nil] The record or nil if not found
123
- def fetch(id, cache: nil)
124
- key = cache_key('records', 'fetch', id: id)
128
+ def fetch(id, cache: nil, include_pricing: false)
129
+ key = cache_key('records', 'fetch', id: id, include_pricing: include_pricing)
125
130
  with_cache(key, resource: :records, cache: cache) do
126
- query = QueryBuilder.fetch_record
131
+ query = QueryBuilder.fetch_record(include_pricing: include_pricing)
127
132
  data = connection.execute(query, { id: id })
128
133
 
129
134
  return nil unless data['fetchRecord']
@@ -142,20 +147,29 @@ module CardDB
142
147
  # @param publisher_slug [String, nil] Publisher slug (uses default if not provided)
143
148
  # @param game_key [String, nil] Game key (uses default if not provided)
144
149
  # @param cache [Boolean, nil] Whether to cache (nil = use config setting)
150
+ # @param include_pricing [Boolean] Include live TCGPlayer pricing when configured
145
151
  # @return [Record, nil] The record or nil if not found
146
152
  #
147
153
  # @example
148
154
  # record = client.records.get(identifier: "xy1-1", dataset_key: "cards")
149
- def get(identifier:, dataset_key:, publisher_slug: nil, game_key: nil, cache: nil)
155
+ def get(
156
+ identifier:,
157
+ dataset_key:,
158
+ publisher_slug: nil,
159
+ game_key: nil,
160
+ cache: nil,
161
+ include_pricing: false
162
+ )
150
163
  resolved_publisher = resolve_publisher(publisher_slug)
151
164
  resolved_game = resolve_game(game_key)
152
165
 
153
166
  validate_access!(resolved_publisher, resolved_game)
154
167
 
155
168
  key = cache_key('records', 'get', publisher_slug: resolved_publisher, game_key: resolved_game,
156
- dataset_key: dataset_key, identifier: identifier)
169
+ dataset_key: dataset_key, identifier: identifier,
170
+ include_pricing: include_pricing)
157
171
  with_cache(key, resource: :records, cache: cache) do
158
- query = QueryBuilder.fetch_record_by_identifier
172
+ query = QueryBuilder.fetch_record_by_identifier(include_pricing: include_pricing)
159
173
  variables = {
160
174
  publisherSlug: resolved_publisher,
161
175
  gameKey: resolved_game,
@@ -181,6 +195,7 @@ module CardDB
181
195
  # @param publisher_slug [String, nil] Publisher slug (uses default if not provided)
182
196
  # @param game_key [String, nil] Game key (uses default if not provided)
183
197
  # @param cache [Boolean, nil] Whether to cache (nil = use config setting)
198
+ # @param include_pricing [Boolean] Include live TCGPlayer pricing when configured
184
199
  # @return [Array<Record>] Matching records
185
200
  # @raise [ArgumentError] If more than 1000 identifiers are provided
186
201
  #
@@ -189,7 +204,14 @@ module CardDB
189
204
  # identifiers: ["xy1-1", "xy1-2"],
190
205
  # dataset_key: "cards"
191
206
  # )
192
- def get_many(identifiers:, dataset_key:, publisher_slug: nil, game_key: nil, cache: nil)
207
+ def get_many(
208
+ identifiers:,
209
+ dataset_key:,
210
+ publisher_slug: nil,
211
+ game_key: nil,
212
+ cache: nil,
213
+ include_pricing: false
214
+ )
193
215
  raise ArgumentError, 'Maximum 1000 identifiers allowed' if identifiers.length > 1000
194
216
  return [] if identifiers.empty?
195
217
 
@@ -204,10 +226,11 @@ module CardDB
204
226
  publisher_slug: resolved_publisher,
205
227
  game_key: resolved_game,
206
228
  dataset_key: dataset_key,
207
- identifiers: identifiers
229
+ identifiers: identifiers,
230
+ include_pricing: include_pricing
208
231
  )
209
232
  with_cache(key, resource: :records, cache: cache) do
210
- query = QueryBuilder.fetch_records_by_identifier
233
+ query = QueryBuilder.fetch_records_by_identifier(include_pricing: include_pricing)
211
234
  variables = {
212
235
  publisherSlug: resolved_publisher,
213
236
  gameKey: resolved_game,
@@ -224,12 +247,13 @@ module CardDB
224
247
  # Fetch multiple records by IDs
225
248
  #
226
249
  # @param ids [Array<String>] Array of record UUIDs (max 1000)
250
+ # @param include_pricing [Boolean] Include live TCGPlayer pricing when configured
227
251
  # @return [Array<Record>] Array of records
228
252
  # @raise [ArgumentError] If more than 1000 IDs provided
229
- def fetch_many(ids)
253
+ def fetch_many(ids, include_pricing: false)
230
254
  raise ArgumentError, 'Maximum 1000 IDs allowed' if ids.length > 1000
231
255
 
232
- query = QueryBuilder.fetch_records
256
+ query = QueryBuilder.fetch_records(include_pricing: include_pricing)
233
257
  data = connection.execute(query, { ids: ids })
234
258
 
235
259
  (data['fetchRecords'] || []).map { |r| Record.new(r, client: client) }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CardDB
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carddb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - CardDB Team