graphql-compose / graphql-compose/graphql-compose-mongoose
addFilterArg not being processed when using AND/OR/_operators
- Dominant language
- TypeScript
- Stars
- 706
- Forks
- 98
- PR merge metrics
- No merged PRs in 30d
Description
```
DbinstanceTC.mongooseResolvers
.pagination({ suffix: "Extended" })
.addArgs({
filterNodeInfo: DNSCNameTC.mongooseResolvers
.pagination()
.getArg("filter"),
})
.addArgs({
filterEnvironmentLink: EnvironmentTC.mongooseResolvers
.pagination()
.getArg("filter"),
})
.addFilterArg({
name: "isDatabaseEmpty",
type: "Boolean",
description: "Filter by empty or non-empty databases array",
query: (rawQuery, value) => {
if (value !== undefined) {
rawQuery.databases = value ? { $size: 0 } : { $not: { $size: 0 } };
}
},
})
.withMiddlewares([authorizeGraphQL([Roles.Admin, Roles.Inventory])])
.wrapResolve(processChildFilters)
.wrapResolve(addEnvFilters),
```
This works fine, when running a query like this:
```
{
dbinstancePagination(
page: 1
perPage: 50
filter: {isDatabaseEmpty: true}
) {
items {
_id
name
tenantCount
databases {
_id
name
type
}
}
pageInfo {
currentPage
perPage
pageCount
itemCount
hasNextPage
hasPreviousPage
}
}
}
```
but when running this it returns non-empty databases:
```
{
dbinstancePagination(
page: 1
perPage: 50
filter: {AND: [{isDatabaseEmpty: true}, {name: "mysql" }]}
) {
items {
_id
name
tenantCount
databases {
_id
name
type
}
}
pageInfo {
currentPage
perPage
pageCount
itemCount
hasNextPage
hasPreviousPage
}
}
}
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.