Class: Apiwork::Contract::ResponseParser
- Inherits:
-
Object
- Object
- Apiwork::Contract::ResponseParser
- Defined in:
- lib/apiwork/contract/response_parser.rb,
lib/apiwork/contract/response_parser/result.rb
Defined Under Namespace
Classes: Result
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(contract_class, action_name) ⇒ ResponseParser
constructor
A new instance of ResponseParser.
- #parse(response) ⇒ Object
Constructor Details
#initialize(contract_class, action_name) ⇒ ResponseParser
Returns a new instance of ResponseParser.
12 13 14 15 |
# File 'lib/apiwork/contract/response_parser.rb', line 12 def initialize(contract_class, action_name) @contract_class = contract_class @action_name = action_name.to_sym end |
Class Method Details
.parse(contract_class, action_name, response) ⇒ Object
7 8 9 |
# File 'lib/apiwork/contract/response_parser.rb', line 7 def parse(contract_class, action_name, response) new(contract_class, action_name).parse(response) end |
Instance Method Details
#parse(response) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/apiwork/contract/response_parser.rb', line 17 def parse(response) return Result.new(response:) unless action shape = action.response.body return Result.new(response:) unless shape return Result.new(response:) unless shape.params.any? validated = shape.validate(response.body) Result.new(issues: validated.issues, response: Response.new(body: validated.params)) end |