Sha256: 8c2478fdd73f4c76a5c3c0dd9a2573f6d2eb2d1fc57e467ba3d55782823ef4e3

Contents?: true

Size: 1.39 KB

Versions: 23

Compression:

Stored size: 1.39 KB

Contents

module ActiveExt
module ExtHelpers
module DataHelper
  def self.build_json_data(core, options={})
    result = {:totalCount => 0, :data => []}
    klass = get_klass(core.model)

    klass.include_root_in_json = false
    
    records = klass.all(options)
    result[:totalCount] = klass.count
    result[:data] = records

    result.to_json(:include => core.association_names)
  end

  def self.create_record(core, options={})
    ignored_columns = %w{id created_at updated_at}

    klass = get_klass(core.model)

    options[:data].delete_if{|k,v| k.blank? || ignored_columns.include?(k)}
    obj = klass.create
    options[:data].each do |k,v|
      obj.send("#{k.to_s}=", v)
    end
    obj.save

    result = {:success => true, :data => []}
    result[:data] = obj

    result.to_json
  end

  def self.update_record(core, options={})
    klass = get_klass(core.model)
    
    obj = klass.find(options[:id])
    options[:data].each do |k,v|
      obj.send("#{k.to_s}=", v)
    end
    obj.save

    result = {:success => true, :data => []}
    result[:data] = obj
    result.to_json
  end

  def self.delete_record(core, options={})
    klass = get_klass(core.model)

    klass.destroy(options[:id])

    result = {:success => true, :data => []}
    result.to_json
  end

  private

  def self.get_klass(model)
    model.to_s.constantize
  end
end
end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
erp_app-3.1.6 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.5 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.4 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.3 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.2 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.16 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.15 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.1 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.0 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.14 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.13 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.12 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.10 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.9 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.8 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.7 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.6 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.5 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.4 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.0.3 lib/active_ext/ext_helpers/data_helper.rb