graphql-compose / graphql-compose/graphql-compose-mongoose

addFilterArg not being processed when using AND/OR/_operators

Open
#445 1 comment 1 reaction 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.