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