Sha256: 7fae054ef57bde4bc0b2f669a5a2a2af9ff261d4ea6f5458a346cd9d8323ce7a

Contents?: true

Size: 657 Bytes

Versions: 4

Compression:

Stored size: 657 Bytes

Contents

# frozen_string_literal: true

module Pragma
  module Operation
    # Finds an existing record, updates it and responds with the decorated record.
    #
    # @author Alessandro Desantis
    class Update < Pragma::Operation::Base
      step Macro::Classes()
      step Macro::Model(:find_by)
      step Macro::Policy()
      step Macro::Contract::Build()
      step Macro::Contract::Validate()
      step Macro::Contract::Persist()
      step Macro::Decorator()
      step :respond!, name: 'respond'

      def respond!(options)
        options['result.response'] = Response::Ok.new(entity: options['result.decorator.instance'])
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pragma-2.5.0 lib/pragma/operation/update.rb
pragma-2.4.0 lib/pragma/operation/update.rb
pragma-2.3.0 lib/pragma/operation/update.rb
pragma-2.2.0 lib/pragma/operation/update.rb