Skip to content

Commit 4c6d164

Browse files
committed
Renamed get_resources to find_by_keys
moved logic to handle single resources to controller brought context up to current options useage
1 parent 3e7b3cf commit 4c6d164

File tree

3 files changed

+16
-18
lines changed

3 files changed

+16
-18
lines changed

lib/jsonapi/resource.rb

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -261,19 +261,16 @@ def find_by_key(key, options = {})
261261
self.new(model, context)
262262
end
263263

264-
def get_resources(keys, context = nil)
265-
if keys.length > 1
266-
_models = _model_class.where({_primary_key => keys})
267-
268-
unless _models.length == keys.length
269-
key = (keys - _models.pluck(:id).map(&:to_s)).first
270-
raise JSONAPI::Exceptions::RecordNotFound.new(key)
271-
end
264+
def find_by_keys(keys, options = {})
265+
context = options[:context]
266+
_models = _model_class.where({_primary_key => keys})
272267

273-
_models.map { |model| self.new(model, context) }
274-
else
275-
self.find_by_key(keys[0], context)
268+
unless _models.length == keys.length
269+
key = (keys - _models.pluck(:id).map(&:to_s)).first
270+
raise JSONAPI::Exceptions::RecordNotFound.new(key)
276271
end
272+
273+
_models.map { |model| self.new(model, context) }
277274
end
278275

279276
def verify_filters(filters, context = nil)

lib/jsonapi/resource_controller.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ def index
2929

3030
def show
3131
keys = parse_key_array(params[resource_klass._primary_key])
32-
resources = resource_klass.get_resources(keys, context)
32+
33+
resources = if keys.length > 1
34+
resource_klass.find_by_keys(keys, context: context)
35+
else
36+
resource_klass.find_by_key(keys[0], context: context)
37+
end
3338

3439
render json: JSONAPI::ResourceSerializer.new.serialize_to_hash(
3540
resources,

test/fixtures/active_record.rb

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -433,12 +433,8 @@ def self.find_by_key(id, options = {})
433433
BreedResource.new($breed_data.breeds[id.to_i], options[:context])
434434
end
435435

436-
def self.get_resources(keys, options = {})
437-
if keys.length > 1
438-
keys.map { |key| self.find_by_key(key, options) }
439-
else
440-
self.find_by_key(keys[0], options)
441-
end
436+
def self.find_by_keys(keys, options = {})
437+
keys.map { |key| self.find_by_key(key, options) }
442438
end
443439
end
444440

0 commit comments

Comments
 (0)