Class: Steppe::Endpoint::QueryValidator
- Inherits:
-
Object
- Object
- Steppe::Endpoint::QueryValidator
- Defined in:
- lib/steppe/endpoint.rb
Overview
Internal step that validates query parameters against a schema. Merges validated query params into the result params hash. Returns 422 Unprocessable Entity if validation fails.
Instance Attribute Summary collapse
-
#query_schema ⇒ Object
readonly
Returns the value of attribute query_schema.
Instance Method Summary collapse
-
#call(conn) ⇒ Result
Updated result with validated params or error response.
-
#initialize(query_schema) ⇒ QueryValidator
constructor
A new instance of QueryValidator.
Constructor Details
#initialize(query_schema) ⇒ QueryValidator
Returns a new instance of QueryValidator.
131 132 133 |
# File 'lib/steppe/endpoint.rb', line 131 def initialize(query_schema) @query_schema = query_schema.is_a?(Hash) ? Types::Hash[query_schema] : query_schema end |
Instance Attribute Details
#query_schema ⇒ Object (readonly)
Returns the value of attribute query_schema.
128 129 130 |
# File 'lib/steppe/endpoint.rb', line 128 def query_schema @query_schema end |
Instance Method Details
#call(conn) ⇒ Result
Returns Updated result with validated params or error response.
137 138 139 140 141 142 143 |
# File 'lib/steppe/endpoint.rb', line 137 def call(conn) result = query_schema.resolve(conn.request.steppe_url_params) conn = conn.copy(params: conn.params.merge(result.value)) return conn if result.valid? conn.respond_with(422).invalid(errors: result.errors) end |