module DryCrudJsonapi

Constants

VERSION

Public Instance Methods

jsonapi_class() click to toggle source
# File lib/dry_crud_jsonapi.rb, line 32
def jsonapi_class
  @jsonapi_class ||= Hash.new do |hash, class_name|
    hash[class_name] = model_serializer || Serializer.new(class_name).build
  end
end
jsonapi_expose() click to toggle source
# File lib/dry_crud_jsonapi.rb, line 38
def jsonapi_expose
  { controller: self, current_user: current_user }
end
jsonapi_pagination(resources) click to toggle source
# File lib/dry_crud_jsonapi.rb, line 27
def jsonapi_pagination(resources)
  return unless action_name == 'index' && resources.present?
  Pager.new(resources, model_class, params).render
end
rescued_polymorphic_path(*objects) click to toggle source
# File lib/dry_crud_jsonapi.rb, line 42
def rescued_polymorphic_path(*objects)
  polymorphic_path(*objects) rescue nil
end

Private Instance Methods

json_render_entries() click to toggle source
# File lib/dry_crud_jsonapi.rb, line 48
def json_render_entries
  jsonapi_render(entries)
end
json_render_entry() click to toggle source
# File lib/dry_crud_jsonapi.rb, line 52
def json_render_entry
  jsonapi_render(entry)
end
jsonapi_fields() click to toggle source
# File lib/dry_crud_jsonapi.rb, line 64
def jsonapi_fields
  params.permit(fields: {}).fetch('fields', []).to_h.collect do |model, string|
    [model, string.split(',')]
  end.to_h
end
jsonapi_include() click to toggle source
# File lib/dry_crud_jsonapi.rb, line 60
def jsonapi_include
  params.permit(:include)[:include] || []
end
jsonapi_render(object) click to toggle source
# File lib/dry_crud_jsonapi.rb, line 56
def jsonapi_render(object)
  render jsonapi: object, include: jsonapi_include, fields: jsonapi_fields, expose: jsonapi_expose
end