Module: Pragma::Macro::Contract
- Defined in:
- lib/pragma/macro/contract/build.rb,
lib/pragma/macro/contract/persist.rb,
lib/pragma/macro/contract/validate.rb
Class Method Summary collapse
- .Build(name: 'default', constant: nil, builder: nil) ⇒ Object
- .Persist(method: :save, name: 'default') ⇒ Object
- .Validate(name: 'default', **args) ⇒ Object
Class Method Details
.Build(name: 'default', constant: nil, builder: nil) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/pragma/macro/contract/build.rb', line 8 def self.Build(name: 'default', constant: nil, builder: nil) step = lambda do |input, | Macro.require_skill('Contract::Build', "contract.#{name}.class", ) Trailblazer::Operation::Contract::Build.for( input, , name: name, constant: constant, builder: builder ).tap do |contract| contract.current_user = ['current_user'] end end [step, name: "contract.#{name}.build"] end |
.Persist(method: :save, name: 'default') ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/pragma/macro/contract/persist.rb', line 8 def self.Persist(method: :save, name: 'default') step = lambda do |input, | Macro.require_skill('Contract::Persist', "contract.#{name}.class", ) Trailblazer::Operation::Pipetree::Step.new( Trailblazer::Operation::Contract::Persist(method: method, name: name).first ).call(input, ).tap do |result| unless result ['result.response'] = Pragma::Operation::Response::UnprocessableEntity.new( errors: ["contract.#{name}"].model.errors. ).decorate_with(Pragma::Decorator::Error) end end end [step, name: "contract.#{name}.#{method}"] end |
.Validate(name: 'default', **args) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/pragma/macro/contract/validate.rb', line 8 def self.Validate(name: 'default', **args) step = lambda do |input, | Macro.require_skill('Contract::Validate', "contract.#{name}.class", ) Trailblazer::Operation::Pipetree::Step.new( Trailblazer::Operation::Contract::Validate(**args).first ).call(input, ).tap do |result| unless result ['result.response'] = Pragma::Operation::Response::UnprocessableEntity.new( errors: ["contract.#{name}"].errors. ).decorate_with(Pragma::Decorator::Error) end end end [step, name: "contract.#{name}.validate"] end |