Implement missing FilterBuilder functions #12
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The original implementation of logical and filtering functions in the FilterBuilder module used names (and, or, in, not) that conflicted with Elixir’s reserved keywords. Additionally, the existing functions lacked support for a more user-friendly DSL to represent conditions, making the API less intuitive and prone to errors when constructing complex queries with PostgREST.
Solution
These changes avoid conflicts with Elixir’s reserved keywords while keeping the naming clear and aligned with their functionality.
Rationale
The renaming of functions resolves naming conflicts with Elixir’s core Kernel functions, improving the library’s compatibility and usability in pipelines.
The custom DSL aligns with Elixir’s declarative and functional programming principles, making it easier to construct and manage complex query conditions. This approach reduces the risk of errors caused by manually crafting PostgREST-compatible syntax strings and ensures consistency across the API.
This PR also addresses issue #8 by providing a more intuitive and extensible API for constructing filters and logical operations.