Sha256: 2013d96a27ce81921c3baaae3517b1b833eeaf71fc08cd2c5fc3e3c5e4a72bee
Contents?: true
Size: 816 Bytes
Versions: 20
Compression:
Stored size: 816 Bytes
Contents
require 'active_support' class LHS::Service module Find extend ActiveSupport::Concern module ClassMethods # Find a single uniqe record def find(args) if args.is_a? Hash find_with_parameters(args) else find_by_id(args) end end private def find_with_parameters(params) data = instance.request(params: params) if data._proxy.is_a?(LHS::Collection) fail LHC::NotFound.new('Requested unique item. Multiple were found.', data._request.response) if data.count > 1 data.first || fail(LHC::NotFound.new('No item was found.', data._request.response)) else data end end def find_by_id(id) instance.request(params: { id: id }) end end end end
Version data entries
20 entries across 20 versions & 1 rubygems