Sha256: 19955e75220612fa33a79b5387afcbdcdffb50622803bd203630eb969e3fc3ac

Contents?: true

Size: 876 Bytes

Versions: 24

Compression:

Stored size: 876 Bytes

Contents

module ForestLiana
  class ResourceUpdater
    attr_accessor :record
    attr_accessor :errors

    def initialize(resource, params)
      @resource = resource
      @params = params
      @errors = nil
    end

    def perform
      begin
        @record = @resource.find(@params[:id])

        if has_strong_parameter
          @record.update_attributes(resource_params)
        else
          @record.update_attributes(resource_params, without_protection: true)
        end
      rescue ActiveRecord::StatementInvalid => exception
        # NOTICE: SQL request cannot be executed properly
        @errors = [{ detail: exception.cause.error }]
      end
    end

    def resource_params
      ResourceDeserializer.new(@resource, @params, false).perform
    end

    def has_strong_parameter
      @resource.instance_method(:update_attributes!).arity == 1
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
forest_liana-1.6.11 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.10 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.7 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.6 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.5 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.4 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.3 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.2 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.1 app/services/forest_liana/resource_updater.rb
forest_liana-1.6.0 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.26 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.25 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.24 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.23 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.22 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.21 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.20 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.19 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.18 app/services/forest_liana/resource_updater.rb
forest_liana-1.5.17 app/services/forest_liana/resource_updater.rb