module JSONAPI::ControllerHelpers::ResourceSetup
def set_jsonapi_namespace
def set_jsonapi_namespace @jsonapi_namespace = params[:jsonapi_namespace].presence end
def set_resource
def set_resource @resource = @resource_class.records.find(params[:id]) rescue ActiveRecord::RecordNotFound render_not_found_error( title: "Record Not Found", detail: "Could not find #{@resource_name} with id '#{params[:id]}'", ) end
def set_resource_class
def set_resource_class namespace = params[:jsonapi_namespace].presence @resource_class = JSONAPI::ResourceLoader.find(params[:resource_type], namespace:) @model_class = @resource_class.model_class rescue JSONAPI::ResourceLoader::MissingResourceClass => e render_resource_not_found_error(e.message) rescue NameError => e render_model_not_found_error(e) end
def set_resource_name
def set_resource_name @resource_name = params[:resource_type].to_s.singularize end