Skip to content

Conversation

@jwilkinson87
Copy link
Contributor

This pull request refactors how filters are represented and formatted in request parameters, introducing a more expressive and composable filter system. The main changes include replacing the old FilterOption data class with a sealed interface and expression classes, updating the request parameter classes to use the new filter system, and adding comprehensive tests.

Filter system redesign

  • Replaced the old FilterOption data class with a sealed interface and several expression classes (FieldFilterExpression, ValueFilterExpression, FunctionFilterExpression, AndExpression, OrExpression) in FilterExpression.kt, allowing for more flexible and composable filter logic.
  • Updated the AbstractRequestParameters and RequestParametersWithIncludes classes in RequestParameters.kt to use the new filters property (a list of FilterOption) instead of filterOptions, and changed how filters are formatted into query parameters using the new expression system. [1] [2] [3]

API and usage updates

  • Updated all usages of filterOptions to filters in request parameter classes, such as FormSchemaRequestParameters and FormSubmissionVersionRequestParameters, to match the new filter system. [1] [2]
  • Simplified the usage of emptyMap<String, String>() to emptyMap() in FormSubmissionsRouter.kt for clarity.

Testing

  • Added a new test suite RequestParametersFiltersTest.kt to verify correct formatting of complex filter expressions, ensuring the new filter system works as intended.…classes

@github-actions
Copy link

There is a problem with the Gemini CLI PR review. Please check the action logs for details.

@jwilkinson87 jwilkinson87 marked this pull request as ready for review October 15, 2025 12:46
@jwilkinson87 jwilkinson87 merged commit 8530822 into main Oct 15, 2025
2 checks passed
@jwilkinson87 jwilkinson87 deleted the fix/filter-options-in-request branch October 15, 2025 14:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants