Class: Apiwork::Introspection::Action::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/apiwork/introspection/action/request.rb

Overview

Wraps action request definitions.

Contains query parameters and/or body parameters.

Examples:

request = action.request
request.query? # => true
request.body? # => false
request.query[:page] # => Param for page param

Instance Method Summary collapse

Constructor Details

#initialize(dump) ⇒ Request

Returns a new instance of Request.



17
18
19
# File 'lib/apiwork/introspection/action/request.rb', line 17

def initialize(dump)
  @dump = dump
end

Instance Method Details

#bodyHash{Symbol => Param}

The body for this request.

Returns:

  • (Hash{Symbol => Param})


41
42
43
# File 'lib/apiwork/introspection/action/request.rb', line 41

def body
  @body ||= @dump[:body].transform_values { |dump| Param.build(dump) }
end

#body?Boolean

Whether this request has a body.

Returns:

  • (Boolean)


57
58
59
# File 'lib/apiwork/introspection/action/request.rb', line 57

def body?
  body.any?
end

#descriptionString?

The description for this request.

Returns:

  • (String, nil)


25
26
27
# File 'lib/apiwork/introspection/action/request.rb', line 25

def description
  @dump[:description]
end

#queryHash{Symbol => Param}

The query for this request.

Returns:

  • (Hash{Symbol => Param})


33
34
35
# File 'lib/apiwork/introspection/action/request.rb', line 33

def query
  @query ||= @dump[:query].transform_values { |dump| Param.build(dump) }
end

#query?Boolean

Whether this request has query parameters.

Returns:

  • (Boolean)


49
50
51
# File 'lib/apiwork/introspection/action/request.rb', line 49

def query?
  query.any?
end

#to_hHash

Converts this request to a hash.

Returns:

  • (Hash)


65
66
67
68
69
70
71
# File 'lib/apiwork/introspection/action/request.rb', line 65

def to_h
  {
    description:,
    body: body.transform_values(&:to_h),
    query: query.transform_values(&:to_h),
  }
end