Skip to content

addFilterArg not being processed when using AND/OR/_operators #445

Description

@seansabour
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
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions