jsonapi-realizer 6.2.2 → 6.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76035465cf3254f1210f6fb47c9fa56774d0a7564456722a1f5f2845399e303b
4
- data.tar.gz: a2ca1648916cac59450a0d01fd9d801c65b466d4c4db86e930d74cd966fdc694
3
+ metadata.gz: bdbcdbae0d050e594266eeb3a84ee99ac64ca19febc7ba1d86d823479e832f0d
4
+ data.tar.gz: 6c5bafdb777e5f5722c0ce14cd2e6978bd727409b9a09ea1e68c5ecc07671434
5
5
  SHA512:
6
- metadata.gz: d2a961ef650cf889f4637a19c9ed606867a9cf45bfabd267df96b846eb576d10ae060e8073f2606f24e4a812c9f67298e37e721c6e2644212b527f651e544aaf
7
- data.tar.gz: 9766f382f722a9b18a982c33476940bf960966cb33189b4ddeb6a1c00b6cfdd853e967dbdd6677df673621fbcbe5c7d514904ae1c6bc7d995ea21bda4540dca5
6
+ metadata.gz: 1b3c4810879476f7d3d748a16a8538c599f3e288cb7aa55d83bacb7727eb9abc135e12afd9140b6650cd062e8629b6cbf307f655c3fcecaa20bbd71db3299e9b
7
+ data.tar.gz: 40eeabceb511afea21c0baab9c840c9963ba05a6b3c286b2464a80391e8d3ebe71e700e78ca7b0ecc99fe1105eab090f970983a601e61bf17444414e0366dd0c
@@ -73,7 +73,15 @@ module JSONAPI
73
73
  end
74
74
 
75
75
  def paginate?
76
- parameters.key?("page") && (parameters.fetch("page").key?("limit") || parameters.fetch("page").key?("offset"))
76
+ parameters.key?("page") && parameters.fetch("page").respond_to?(:fetch) && (paginate_limit? || paginate_offset?)
77
+ end
78
+
79
+ private def paginate_limit?
80
+ parameters.fetch("page").key?("limit")
81
+ end
82
+
83
+ private def paginate_offset?
84
+ parameters.fetch("page").key?("offset")
77
85
  end
78
86
 
79
87
  def pagination
@@ -84,7 +92,7 @@ module JSONAPI
84
92
  end
85
93
 
86
94
  def sorting?
87
- parameters.key?("sort")
95
+ parameters.key?("sort") && parameters.fetch("sort").respond_to?(:split)
88
96
  end
89
97
 
90
98
  def sorts
@@ -105,7 +113,7 @@ module JSONAPI
105
113
  end
106
114
 
107
115
  def filtering?
108
- parameters.key?("filter")
116
+ parameters.key?("filter") && parameters.fetch("filter").respond_to?(:transform_keys)
109
117
  end
110
118
 
111
119
  def filters
@@ -118,7 +126,7 @@ module JSONAPI
118
126
  end
119
127
 
120
128
  def include?
121
- parameters.key?("include")
129
+ parameters.key?("include") && parameters.fetch("include").respond_to?(:split)
122
130
  end
123
131
 
124
132
  def includes
@@ -150,7 +158,7 @@ module JSONAPI
150
158
  end
151
159
 
152
160
  def selects?
153
- parameters.key?("fields")
161
+ parameters.key?("fields") && parameters.fetch("fields").respond_to?(:transform_keys)
154
162
  end
155
163
 
156
164
  def selects
@@ -167,7 +175,6 @@ module JSONAPI
167
175
  end
168
176
 
169
177
  def attributes
170
- return {} unless data["attributes"].kind_of?(Hash)
171
178
  @attributes ||= data
172
179
  .fetch("attributes")
173
180
  .transform_keys(&:underscore)
@@ -175,7 +182,6 @@ module JSONAPI
175
182
  end
176
183
 
177
184
  def relationships
178
- return {} unless data["relationships"].kind_of?(Hash)
179
185
  @relationships ||= data
180
186
  .fetch("relationships")
181
187
  .transform_keys(&:underscore)
@@ -283,7 +289,7 @@ module JSONAPI
283
289
  end
284
290
 
285
291
  private def data?
286
- parameters.key?("data")
292
+ parameters.key?("data") && (parameters.fetch("data").respond_to?(:fetch) || parameters.fetch("data").respond_to?(:map))
287
293
  end
288
294
 
289
295
  private def data
@@ -297,11 +303,11 @@ module JSONAPI
297
303
  end
298
304
 
299
305
  private def attributes?
300
- data.key?("attributes")
306
+ data.key?("attributes") && data.fetch("attributes").respond_to?(:fetch)
301
307
  end
302
308
 
303
309
  private def relationships?
304
- data.key?("relationships")
310
+ data.key?("relationships") && data.fetch("relationships").respond_to?(:fetch)
305
311
  end
306
312
 
307
313
  private def scope
@@ -315,7 +321,7 @@ module JSONAPI
315
321
 
316
322
  relation_configuration = relation(name).realizer_class.configuration
317
323
 
318
- if data.is_a?(Array)
324
+ if data.kind_of?(Array)
319
325
  [name, relation_configuration.adapter.find_many(relation_configuration.model_class, { id: data.map { |value| value.fetch("id") } })]
320
326
  else
321
327
  [name, relation_configuration.adapter.find_one(relation_configuration.model_class, data.fetch("id"))]
@@ -2,6 +2,6 @@
2
2
 
3
3
  module JSONAPI
4
4
  module Realizer
5
- VERSION = "6.2.2"
5
+ VERSION = "6.2.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonapi-realizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.2
4
+ version: 6.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kurtis Rainbolt-Greene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-18 00:00:00.000000000 Z
11
+ date: 2023-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport