Sha256: ee416315a4e08df9687cd2ac2a63b1f8d0150e8c30615257a1d95dd93a5c4c70
Contents?: true
Size: 1.73 KB
Versions: 4
Compression:
Stored size: 1.73 KB
Contents
require 'databound/initializer' require 'databound/railtie' require 'databound/extensions' require 'databound/version' require 'databound/data' require 'databound/manager' require 'databound/config' require 'databound/controller' require 'databound/rails/routes' module Databound def where records = @crud.find_scoped_records render json: { success: true, records: serialize_array(records), } end def create record = @crud.create_from_data render json: { success: true, id: serialize(record, :id), scoped_records: serialize_array(scoped_records), } end def update record = @crud.update_from_data render json: { success: true, id: serialize(record, :id), scoped_records: serialize_array(scoped_records), } end def destroy @crud.destroy_from_data render json: { success: true, scoped_records: serialize_array(scoped_records), } end private def serialize_array(records) return records.to_json unless defined?(ActiveModel::Serializer) serializer = ActiveModel::Serializer.serializer_for(records.first) return records unless serializer ActiveModel::ArraySerializer.new(records).to_json end def serialize(record, attribute) unserialized = record.send(attribute) return unserialized.to_json unless defined?(ActiveModel::Serializer) serializer = ActiveModel::Serializer.serializer_for(record) return unserialized unless serializer serializer.new(record).attributes[:id] end def init_crud @crud = Databound::Manager.new(self) end def scoped_records records = @crud.find_scoped_records(only_extra_scopes: true) @crud.action_allowed?(:read, records) ? records : [] end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
databound-3.1.3 | lib/databound.rb |
databound-3.1.2 | lib/databound.rb |
databound-3.1.1 | lib/databound.rb |
databound-3.1.0 | lib/databound.rb |