module LinkedRails::Model::IriMapping::ClassMethods

Public Instance Methods

parent_from_params(params, user_context) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 9
def parent_from_params(params, user_context)
  LinkedRails.iri_mapper.parent_from_params(params, user_context)
end
requested_index_resource(params, user_context) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 13
def requested_index_resource(params, user_context)
  if params.key?(:parent_iri)
    collection_from_parent(index_collection_params(params, user_context))
  else
    root_collection(index_collection_params(params, user_context))
  end
end
requested_index_resource!(params, user_context) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 21
def requested_index_resource!(params, user_context)
  requested_index_resource(params, user_context) || raise(ActiveRecord::RecordNotFound)
end
requested_resource(opts, user_context) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 25
def requested_resource(opts, user_context)
  if collection_action?(opts)
    requested_index_resource(opts[:params], user_context)
  elsif singular_action?(opts)
    resource = requested_singular_resource(opts[:params], user_context)
    resource&.singular_resource = true
    resource
  else
    requested_single_resource(opts[:params], user_context)
  end
end
requested_single_resource(params, _user_context) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 37
def requested_single_resource(params, _user_context)
  if self < ActiveRecord::Base
    find_by(primary_key => params[:id]) if params.key?(:id)
  else
    new(params)
  end
end
requested_single_resource!(params, user_context) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 45
def requested_single_resource!(params, user_context)
  requested_single_resource(params, user_context) || raise(ActiveRecord::RecordNotFound)
end

Private Instance Methods

collection_action?(opts) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 51
def collection_action?(opts)
  %w[index create].include?(opts[:action]) && !opts[:params][:singular_route]
end
index_collection_params(params, user_context) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 55
def index_collection_params(params, user_context)
  params_hash = params.is_a?(ActionController::Parameters) ? params.to_unsafe_h : params

  {
    user_context: user_context
  }.merge(params_hash).with_indifferent_access
end
singular_action?(opts) click to toggle source
# File lib/linked_rails/model/iri_mapping.rb, line 63
def singular_action?(opts)
  opts[:params][:singular_route]
end