Refactor SCIM ParamsParser
What
-
Scim::ParamsParser
processes params based on request instead of guessing by contents. - Extracts value coercion/casting to a new
ValueParser
class. - Extracts attribute mapping to a new
AtrributeTransform
class. - Extracts GET filter parsing to a new
FilterParser
class
Why
- Previously we only processed params for
GET /Users
ifparams[:filter]
was present, and would have attempted to look at POST params if it was not. - This represents most of the work for #35209 (closed), with a further small MR to create the actual behaviour change.
- Properly supporting the SCIM filtering spec for #13138 (closed) will require us to write an actual parser, likely with parslet. Splitting out these classes reduces the interdependencies between them in preparation for that effort.
Acceptance criteria
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
Edited by James Edwards-Jones