feat(examples): Adding a complex filter example #123
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.
Describe your changes
This pull request introduces a new example for creating complex filters using the
Joiner
andWherer
interfaces and makes several changes to the codebase to support this functionality. The most important changes include the addition of a new example, modifications to existing filter interfaces, and updates to thepatcher
package.New Example Addition:
examples/complex_filter/README.md
: Added a new README file that explains how to use theJoiner
andWherer
interfaces to create a complex filter. This includes a database schema for thePeople
andContacts
tables.examples/complex_filter/main.go
: Added a new Go file that demonstrates the creation of a complex filter using thepatcher
package. This includes definingPerson
andPersonFilter
structs, implementing theWhere
andJoin
methods, and generating SQL queries.Interface Modifications:
examples/joiner/main.go
: Updated theNewPersonWhere
andNewPersonContactJoiner
functions to returnpatcher.Wherer
andpatcher.Joiner
interfaces, respectively. Removed theContactWhere
struct and its associated methods. [1] [2]Patcher Package Updates:
multifilter.go
: Modified theMultiFilter
interface to embed the newFilter
interface, which combines theJoiner
andWherer
interfaces.