class Resourcey::Controller

Public Instance Methods

create() click to toggle source
# File lib/resourcey/controller.rb, line 20
def create
  @resource = resource_model.new(resource_params)

  if @resource.save
    render json: @resource, serializer: serializer, status: :ok
  else
    render json: { errors: @resource.errors }, status: :bad_request
  end
end
destroy() click to toggle source
# File lib/resourcey/controller.rb, line 41
def destroy
  find_resource
  @resource.destroy

  if @resource.destroyed?
    render json: true, status: :ok
  else
    render json: { errors: @resource.errors }, status: :bad_request
  end
end
index() click to toggle source
# File lib/resourcey/controller.rb, line 11
def index
  render json: serialized_collection(scoped_resources)
end
show() click to toggle source
# File lib/resourcey/controller.rb, line 15
def show
  find_resource
  render json: @resource, serializer: serializer
end
update() click to toggle source
# File lib/resourcey/controller.rb, line 30
def update
  find_resource
  @resource.assign_attributes(resource_params)

  if @resource.save
    render json: @resource, serializer: serializer, status: :ok
  else
    render json: { errors: @resource.errors }, status: :bad_request
  end
end

Private Instance Methods

default_resource_model() click to toggle source
# File lib/resourcey/controller.rb, line 67
def default_resource_model
  name = resource_model_name
  name.safe_constantize || raise(Errors::ClassNotFound.new(name))
end
default_serializer() click to toggle source
# File lib/resourcey/controller.rb, line 76
def default_serializer
  name = "#{resource_model_name}Serializer"
  name.safe_constantize || raise(Errors::ClassNotFound.new(name))
end
find_resource() click to toggle source
# File lib/resourcey/controller.rb, line 54
def find_resource
  @resource = resource_model.find(params[:id])
end
resource_model() click to toggle source
# File lib/resourcey/controller.rb, line 62
def resource_model
  return self.controller_model if self.controller_model
  default_resource_model
end
resource_model_name() click to toggle source
# File lib/resourcey/controller.rb, line 58
def resource_model_name
  @resource_model_name ||= controller_name.singularize.camelize
end
resource_params() click to toggle source
# File lib/resourcey/controller.rb, line 85
def resource_params
  raise Errors::NotImplemented.new(:resource_params)
end
resources() click to toggle source
# File lib/resourcey/controller.rb, line 81
def resources
  resource_model.all
end
serialized_collection(collection) click to toggle source
# File lib/resourcey/controller.rb, line 89
def serialized_collection(collection)
  ActiveModel::Serializer::CollectionSerializer.new(collection, serializer: serializer)
end
serializer() click to toggle source
# File lib/resourcey/controller.rb, line 72
def serializer
  build_serializer_from_configuration || default_serializer
end