mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 04:14:39 +03:00
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:
@@ -731,10 +731,12 @@ func TestPerformerQueryEthnicityOr(t *testing.T) {
|
||||
Value: performer1Eth,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
},
|
||||
Or: &models.PerformerFilterType{
|
||||
Ethnicity: &models.StringCriterionInput{
|
||||
Value: performer2Eth,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
OperatorFilter: models.OperatorFilter[models.PerformerFilterType]{
|
||||
Or: &models.PerformerFilterType{
|
||||
Ethnicity: &models.StringCriterionInput{
|
||||
Value: performer2Eth,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -760,10 +762,12 @@ func TestPerformerQueryEthnicityAndRating(t *testing.T) {
|
||||
Value: performerEth,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
},
|
||||
And: &models.PerformerFilterType{
|
||||
Rating100: &models.IntCriterionInput{
|
||||
Value: performerRating,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
OperatorFilter: models.OperatorFilter[models.PerformerFilterType]{
|
||||
And: &models.PerformerFilterType{
|
||||
Rating100: &models.IntCriterionInput{
|
||||
Value: performerRating,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -801,8 +805,10 @@ func TestPerformerQueryEthnicityNotRating(t *testing.T) {
|
||||
|
||||
performerFilter := models.PerformerFilterType{
|
||||
Ethnicity: ðCriterion,
|
||||
Not: &models.PerformerFilterType{
|
||||
Rating100: &ratingCriterion,
|
||||
OperatorFilter: models.OperatorFilter[models.PerformerFilterType]{
|
||||
Not: &models.PerformerFilterType{
|
||||
Rating100: &ratingCriterion,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -838,24 +844,30 @@ func TestPerformerIllegalQuery(t *testing.T) {
|
||||
// And and Or in the same filter
|
||||
"AndOr",
|
||||
models.PerformerFilterType{
|
||||
And: &subFilter,
|
||||
Or: &subFilter,
|
||||
OperatorFilter: models.OperatorFilter[models.PerformerFilterType]{
|
||||
And: &subFilter,
|
||||
Or: &subFilter,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
// And and Not in the same filter
|
||||
"AndNot",
|
||||
models.PerformerFilterType{
|
||||
And: &subFilter,
|
||||
Not: &subFilter,
|
||||
OperatorFilter: models.OperatorFilter[models.PerformerFilterType]{
|
||||
And: &subFilter,
|
||||
Not: &subFilter,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
// Or and Not in the same filter
|
||||
"OrNot",
|
||||
models.PerformerFilterType{
|
||||
Or: &subFilter,
|
||||
Not: &subFilter,
|
||||
OperatorFilter: models.OperatorFilter[models.PerformerFilterType]{
|
||||
Or: &subFilter,
|
||||
Not: &subFilter,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user