graphiti 1.3.0 → 1.3.4
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/CHANGELOG.md +1 -0
- data/lib/graphiti/delegates/pagination.rb +3 -1
- data/lib/graphiti/errors.rb +11 -11
- data/lib/graphiti/hash_renderer.rb +2 -2
- data/lib/graphiti/resource/dsl.rb +9 -2
- data/lib/graphiti/schema.rb +1 -1
- data/lib/graphiti/serializer.rb +2 -1
- data/lib/graphiti/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbdb96a78aeac1f48bcea53a3b068638456e703b17fccf68d2f3813270db4bd8
|
4
|
+
data.tar.gz: c1dab2eff065e8ba70193cac81c6c5c44c57f81f9074082887ed7b52f2bcb000
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a860a2d6cc8bfc494207ddd6bac1643c58ba09148fdf85b07c9198840728ace0f752fefb94bafa6599a97eb5ccfa6408544b08312aca5c6e01d77c874141821
|
7
|
+
data.tar.gz: 4a821372147d76d03a6d3e4dc5dce6ca205464d852892484567f725355459b0d5477418340ed9d53831a0062218e7b9daaf3560a0951c2decd8fd177a499954b
|
data/CHANGELOG.md
CHANGED
@@ -12,6 +12,7 @@ Features:
|
|
12
12
|
Fixes:
|
13
13
|
- [282] Support model names including "Resource"
|
14
14
|
- [313](https://github.com/graphiti-api/graphiti/pull/313) Sort remote resources in schema generation
|
15
|
+
- [374](https://github.com/graphiti-api/graphiti/pull/374) Trim leading spaces from error messages
|
15
16
|
|
16
17
|
## 1.1.0
|
17
18
|
|
data/lib/graphiti/errors.rb
CHANGED
@@ -35,7 +35,7 @@ module Graphiti
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def message
|
38
|
-
|
38
|
+
<<~MSG
|
39
39
|
The adapter #{@adapter.class} does not implement method '#{@method}', which was requested for attribute '#{@attribute}'. Add this method to your adapter to support this filter operator.
|
40
40
|
MSG
|
41
41
|
end
|
@@ -49,7 +49,7 @@ module Graphiti
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def message
|
52
|
-
|
52
|
+
<<~MSG
|
53
53
|
#{@parent_resource_class} sideload :#{@name} - #{@message}
|
54
54
|
MSG
|
55
55
|
end
|
@@ -78,7 +78,7 @@ module Graphiti
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def message
|
81
|
-
|
81
|
+
<<~MSG
|
82
82
|
#{@resource_class}: Tried to pass block to .#{@method_name}, which only accepts a method name.
|
83
83
|
MSG
|
84
84
|
end
|
@@ -90,7 +90,7 @@ module Graphiti
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def message
|
93
|
-
|
93
|
+
<<~MSG
|
94
94
|
#{@resource_class}: Tried to perform write operation. Writes are not supported for remote resources - hit the endpoint directly.
|
95
95
|
MSG
|
96
96
|
end
|
@@ -105,7 +105,7 @@ module Graphiti
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def message
|
108
|
-
|
108
|
+
<<~MSG
|
109
109
|
#{@resource.class}: Tried to filter #{@filter_name.inspect} on operator #{@operator.inspect}, but not supported! Supported operators are #{@supported}.
|
110
110
|
MSG
|
111
111
|
end
|
@@ -118,7 +118,7 @@ module Graphiti
|
|
118
118
|
end
|
119
119
|
|
120
120
|
def message
|
121
|
-
|
121
|
+
<<~MSG
|
122
122
|
#{@sideload.parent_resource.class.name}: tried to sideload #{@sideload.name.inspect}, but more than one #{@sideload.parent_resource.model.name} was passed!
|
123
123
|
|
124
124
|
This is because you marked the sideload #{@sideload.name.inspect} with single: true
|
@@ -139,7 +139,7 @@ module Graphiti
|
|
139
139
|
end
|
140
140
|
|
141
141
|
def message
|
142
|
-
|
142
|
+
<<~MSG
|
143
143
|
#{@resource.class.name}: tried to sort on attribute #{@attribute.inspect}, but passed #{@direction.inspect} when only #{@allowlist.inspect} is supported.
|
144
144
|
MSG
|
145
145
|
end
|
@@ -152,7 +152,7 @@ module Graphiti
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def message
|
155
|
-
|
155
|
+
<<~MSG
|
156
156
|
#{@resource_class.name}: called .on_extra_attribute #{@name.inspect}, but extra attribute #{@name.inspect} does not exist!
|
157
157
|
MSG
|
158
158
|
end
|
@@ -173,7 +173,7 @@ module Graphiti
|
|
173
173
|
else
|
174
174
|
"value #{@value.inspect}"
|
175
175
|
end
|
176
|
-
msg =
|
176
|
+
msg = <<~MSG
|
177
177
|
#{@resource.class.name}: tried to filter on #{@filter.keys[0].inspect}, but passed invalid #{value_string}.
|
178
178
|
MSG
|
179
179
|
msg << "\nAllowlist: #{allow.inspect}" if allow
|
@@ -190,7 +190,7 @@ module Graphiti
|
|
190
190
|
end
|
191
191
|
|
192
192
|
def message
|
193
|
-
|
193
|
+
<<~MSG
|
194
194
|
#{@resource_class.name} You declared an attribute or filter of type "#{@enum_type}" without providing a list of permitted values, which is required.
|
195
195
|
|
196
196
|
When declaring an attribute:
|
@@ -214,7 +214,7 @@ module Graphiti
|
|
214
214
|
end
|
215
215
|
|
216
216
|
def message
|
217
|
-
|
217
|
+
<<~MSG
|
218
218
|
#{@resource_class.name}: Cannot link to sideload #{@sideload.name.inspect}!
|
219
219
|
|
220
220
|
Make sure the endpoint "#{@sideload.resource.endpoint[:full_path]}" exists with action #{@action.inspect}, or customize the endpoint for #{@sideload.resource.class.name}.
|
@@ -215,11 +215,11 @@ module Graphiti
|
|
215
215
|
end
|
216
216
|
|
217
217
|
if fields.include?(:start_cursor)
|
218
|
-
info[:startCursor] = serializers.first.cursor
|
218
|
+
info[:startCursor] = serializers.first.try(:cursor)
|
219
219
|
end
|
220
220
|
|
221
221
|
if fields.include?(:end_cursor)
|
222
|
-
info[:endCursor] = serializers.last.cursor
|
222
|
+
info[:endCursor] = serializers.last.try(:cursor)
|
223
223
|
end
|
224
224
|
|
225
225
|
hash[top_level_key][:pageInfo] = info
|
@@ -9,7 +9,11 @@ module Graphiti
|
|
9
9
|
opts = args.extract_options!
|
10
10
|
type_override = args[0]
|
11
11
|
|
12
|
-
if (att =
|
12
|
+
if (att = (attributes[name] || extra_attributes[name]))
|
13
|
+
# We're opting in to filtering, so force this
|
14
|
+
# UNLESS the filter is guarded at the attribute level
|
15
|
+
att[:filterable] = true if att[:filterable] == false
|
16
|
+
|
13
17
|
aliases = [name, opts[:aliases]].flatten.compact
|
14
18
|
operators = FilterOperators.build(self, att[:type], opts, &blk)
|
15
19
|
|
@@ -23,6 +27,8 @@ module Graphiti
|
|
23
27
|
end
|
24
28
|
|
25
29
|
required = att[:filterable] == :required || !!opts[:required]
|
30
|
+
schema = !!opts[:via_attribute_dsl] ? att[:schema] : opts[:schema] != false
|
31
|
+
|
26
32
|
config[:filters][name.to_sym] = {
|
27
33
|
aliases: aliases,
|
28
34
|
name: name.to_sym,
|
@@ -32,6 +38,7 @@ module Graphiti
|
|
32
38
|
single: !!opts[:single],
|
33
39
|
dependencies: opts[:dependent],
|
34
40
|
required: required,
|
41
|
+
schema: schema,
|
35
42
|
operators: operators.to_hash,
|
36
43
|
allow_nil: opts.fetch(:allow_nil, filters_accept_nil_by_default),
|
37
44
|
deny_empty: opts.fetch(:deny_empty, filters_deny_empty_by_default)
|
@@ -130,7 +137,7 @@ module Graphiti
|
|
130
137
|
options[:sortable] ? sort(name) : config[:sorts].delete(name)
|
131
138
|
|
132
139
|
if options[:filterable]
|
133
|
-
filter(name, allow: options[:allow])
|
140
|
+
filter(name, allow: options[:allow], via_attribute_dsl: true)
|
134
141
|
else
|
135
142
|
config[:filters].delete(name)
|
136
143
|
end
|
data/lib/graphiti/schema.rb
CHANGED
@@ -197,7 +197,7 @@ module Graphiti
|
|
197
197
|
def filters(resource)
|
198
198
|
{}.tap do |f|
|
199
199
|
resource.filters.each_pair do |name, filter|
|
200
|
-
next unless resource.
|
200
|
+
next unless resource.filters[name][:schema]
|
201
201
|
|
202
202
|
config = {
|
203
203
|
type: filter[:type].to_s,
|
data/lib/graphiti/serializer.rb
CHANGED
@@ -25,8 +25,9 @@ module Graphiti
|
|
25
25
|
|
26
26
|
# See #requested_relationships
|
27
27
|
def self.relationship(name, options = {}, &block)
|
28
|
+
prev = Util::Hash.deep_dup(field_condition_blocks)
|
28
29
|
super
|
29
|
-
field_condition_blocks
|
30
|
+
self.field_condition_blocks = prev
|
30
31
|
_register_condition(relationship_condition_blocks, name, options)
|
31
32
|
end
|
32
33
|
|
data/lib/graphiti/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphiti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lee Richmond
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jsonapi-serializable
|
@@ -361,7 +361,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
361
361
|
- !ruby/object:Gem::Version
|
362
362
|
version: '0'
|
363
363
|
requirements: []
|
364
|
-
rubygems_version: 3.1.
|
364
|
+
rubygems_version: 3.1.6
|
365
365
|
signing_key:
|
366
366
|
specification_version: 4
|
367
367
|
summary: Easily build jsonapi.org-compatible APIs
|