Add related object filter criteria to various filter types in graphql schema (#4861)

* Move filter criterion handlers into separate file
* Add related filters for image filter
* Add related filters for scene filter
* Add related filters to gallery filter
* Add related filters to movie filter
* Add related filters to performer filter
* Add related filters to studio filter
* Add related filters to tag filter
* Add scene filter to scene marker filter
This commit is contained in:
WithoutPants
2024-06-11 11:34:38 +10:00
committed by GitHub
parent ff23d4e20b
commit e843c890fb
41 changed files with 4562 additions and 3805 deletions

View File

@@ -59,10 +59,12 @@ func TestStudioQueryNameOr(t *testing.T) {
Value: studio1Name,
Modifier: models.CriterionModifierEquals,
},
Or: &models.StudioFilterType{
Name: &models.StringCriterionInput{
Value: studio2Name,
Modifier: models.CriterionModifierEquals,
OperatorFilter: models.OperatorFilter[models.StudioFilterType]{
Or: &models.StudioFilterType{
Name: &models.StringCriterionInput{
Value: studio2Name,
Modifier: models.CriterionModifierEquals,
},
},
},
}
@@ -90,10 +92,12 @@ func TestStudioQueryNameAndUrl(t *testing.T) {
Value: studioName,
Modifier: models.CriterionModifierEquals,
},
And: &models.StudioFilterType{
URL: &models.StringCriterionInput{
Value: studioUrl,
Modifier: models.CriterionModifierEquals,
OperatorFilter: models.OperatorFilter[models.StudioFilterType]{
And: &models.StudioFilterType{
URL: &models.StringCriterionInput{
Value: studioUrl,
Modifier: models.CriterionModifierEquals,
},
},
},
}
@@ -128,8 +132,10 @@ func TestStudioQueryNameNotUrl(t *testing.T) {
studioFilter := models.StudioFilterType{
Name: &nameCriterion,
Not: &models.StudioFilterType{
URL: &urlCriterion,
OperatorFilter: models.OperatorFilter[models.StudioFilterType]{
Not: &models.StudioFilterType{
URL: &urlCriterion,
},
},
}
@@ -160,8 +166,10 @@ func TestStudioIllegalQuery(t *testing.T) {
}
studioFilter := &models.StudioFilterType{
And: &subFilter,
Or: &subFilter,
OperatorFilter: models.OperatorFilter[models.StudioFilterType]{
And: &subFilter,
Or: &subFilter,
},
}
withTxn(func(ctx context.Context) error {