Sha256: da836d13d720edc674a3c7b0bf20c88c705beb3bc29930c7031396fc2d5f1845

Contents?: true

Size: 703 Bytes

Versions: 3

Compression:

Stored size: 703 Bytes

Contents

module InfinumId
  module Resources
    class Updater
      def initialize(params, resource)
        @params = params.deep_symbolize_keys
        @resource = resource
      end

      def self.call(params, resource)
        new(params, resource).call
      end

      def call
        update_resource
        InfinumId::AfterResourceUpsert.call(
          resource,
          @params,
          InfinumId::AfterResourceIntent::UPDATE
        )
      end

      private

      attr_reader :resource_params, :resource

      def update_resource
        resource.update(resource_params)
      end

      def resource_params
        @params.slice(*InfinumId.resource_attributes)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
infinum_id-2.1.0 app/services/infinum_id/resources/updater.rb
infinum_id-2.0.1 app/services/infinum_id/resources/updater.rb
infinum_id-2.0.0 app/services/infinum_id/resources/updater.rb