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 +4 -4
- data/.rspec_status +84 -80
- data/lib/carddb/collection.rb +11 -1
- data/lib/carddb/query_builder.rb +39 -13
- data/lib/carddb/resources/records.rb +39 -15
- data/lib/carddb/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 95339c7a41f87063b7543aff563ae04f955d59de9f3e5f5ee5f4be020f3897f1
|
|
4
|
+
data.tar.gz: 370d681dea20285ea2f4429d027733a7dd175c241a773feb6fccaa0e52ccdf37
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
4
|
-
./spec/carddb/client_spec.rb[1:1:2] | passed | 0.
|
|
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.
|
|
7
|
-
./spec/carddb/client_spec.rb[1:2:2] | passed | 0.
|
|
8
|
-
./spec/carddb/client_spec.rb[1:3:1] | passed | 0.
|
|
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.
|
|
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.
|
|
13
|
-
./spec/carddb/client_spec.rb[1:7:2] | passed | 0.
|
|
14
|
-
./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.
|
|
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.
|
|
17
|
-
./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.
|
|
18
|
-
./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.
|
|
19
|
-
./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.
|
|
20
|
-
./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.
|
|
21
|
-
./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.
|
|
22
|
-
./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.
|
|
23
|
-
./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.
|
|
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.
|
|
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.
|
|
32
|
-
./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.
|
|
33
|
-
./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.
|
|
34
|
-
./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.
|
|
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.
|
|
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.
|
|
42
|
-
./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.
|
|
43
|
-
./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.
|
|
44
|
-
./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.
|
|
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.
|
|
54
|
-
./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.
|
|
55
|
-
./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.
|
|
56
|
-
./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.
|
|
57
|
-
./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.
|
|
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.
|
|
60
|
-
./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.
|
|
61
|
-
./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.
|
|
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/
|
|
65
|
-
./spec/carddb/
|
|
66
|
-
./spec/carddb/
|
|
67
|
-
./spec/carddb/resources/
|
|
68
|
-
./spec/carddb/resources/
|
|
69
|
-
./spec/carddb/resources/
|
|
70
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
71
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
72
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
73
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
74
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
75
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
76
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
77
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
78
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
79
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
80
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
81
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
82
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
83
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
84
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
85
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
86
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
87
|
-
./spec/carddb/resources/
|
|
88
|
-
./spec/carddb/resources/
|
|
89
|
-
./spec/carddb/resources/
|
|
90
|
-
./spec/carddb/resources/games_spec.rb[1:
|
|
91
|
-
./spec/carddb/resources/
|
|
92
|
-
./spec/carddb/resources/
|
|
93
|
-
./spec/carddb/resources/
|
|
94
|
-
./spec/carddb/resources/
|
|
95
|
-
./spec/carddb/resources/
|
|
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.
|
|
98
|
-
./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.
|
|
99
|
-
./spec/carddb/resources/records_spec.rb[1:3
|
|
100
|
-
./spec/carddb/resources/records_spec.rb[1:3:
|
|
101
|
-
./spec/carddb/resources/records_spec.rb[1:
|
|
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.
|
|
104
|
-
./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.
|
|
105
|
-
./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.
|
|
106
|
-
./spec/carddb_spec.rb[1:1] | passed | 0.
|
|
107
|
-
./spec/carddb_spec.rb[1:2:1] | passed | 0.
|
|
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.
|
|
111
|
-
./spec/carddb_spec.rb[1:6:1] | passed | 0.
|
|
112
|
-
./spec/carddb_spec.rb[1:7:1] | passed | 0.
|
|
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 |
|
data/lib/carddb/collection.rb
CHANGED
|
@@ -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
|
data/lib/carddb/query_builder.rb
CHANGED
|
@@ -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(
|
|
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
|
|
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(
|
|
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(
|
|
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) }
|
data/lib/carddb/version.rb
CHANGED