Class: Zodra::ActionBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/zodra/action_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(action) ⇒ ActionBuilder

Returns a new instance of ActionBuilder.



5
6
7
# File 'lib/zodra/action_builder.rb', line 5

def initialize(action)
  @action = action
end

Instance Method Details

#error(code, status:) ⇒ Object



28
29
30
# File 'lib/zodra/action_builder.rb', line 28

def error(code, status:)
  @action.add_error(code, status:)
end

#params(from: nil, pick: nil, omit: nil, partial: false, &block) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/zodra/action_builder.rb', line 9

def params(from: nil, pick: nil, omit: nil, partial: false, &block)
  if from
    source = resolve_type(from)
    TypeDeriver.new(source, pick:, omit:, partial:).apply(@action.params)
  end

  TypeBuilder.new(@action.params).instance_eval(&block) if block
end

#response(type_name = nil, collection: false, &block) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/zodra/action_builder.rb', line 18

def response(type_name = nil, collection: false, &block)
  @action.collection! if collection

  if block
    TypeBuilder.new(@action.response_definition).instance_eval(&block)
  elsif type_name
    @action.response_type = type_name.to_sym
  end
end