graphql-compose-mongoose
graphql-compose-mongoose copied to clipboard
Pagination not applying addFilterArg
I have such a model. Schema composer:
import { SchemaComposer } from "graphql-compose"
export const schemaComposer = new SchemaComposer<{ req: any }>();
Mongo model:
import moongose, { Schema, Document, Model, ObjectId } from "mongoose"
import { composeMongoose } from "graphql-compose-mongoose"
import { schemaComposer } from "../lib/graphql/schemaComposer"
const orderSchema = new Schema(
{
retailerId: String,
}
)
orderSchema.index({ createdAt: 1 })
const OrderModel: Model<OrderDocument> = moongose.model<OrderDocument>(
"Order",
orderSchema
)
const OrderTC = composeMongoose(OrderModel, {
schemaComposer
})
export { OrderModel, OrderTC }
Schema builder:
import { schemaComposer } from "../../../lib/graphql/schemaComposer"
schemaComposer.Query.addFields({
orderPagination: orderPagination,
})
const graphqlSchema = schemaComposer.buildSchema()
export default graphqlSchema
Custom resolver:
import { OrderTC } from "../../../../data-model/order"
export const orderPagination = OrderTC.mongooseResolvers.pagination().addFilterArg({
name: "retailerName",
type: "String",
})
When I'm trying to add a new filter to OrderTC.mongooseResolvers.pagination
, it seems like it doesn't work. I don't see my filter inside of FilterFindManyOrderInput
. Any idea what I'm doing wrong?
Hmmm, I made it works. By adding solution from https://github.com/graphql-compose/graphql-compose-mongoose/issues/288#issuecomment-731782722
import { preparePaginationResolver } from "graphql-compose-pagination"
export const orderPagination = preparePaginationResolver(OrderTC, {
findManyResolver: OrderTC.mongooseResolvers
.findMany({ suffix: "Extended" })
.addFilterArg({
name: "retailerName",
type: "String",
}),
countResolver: OrderTC.mongooseResolvers.count(),
name: "pagination", // Default
perPage: 20, // Default
})
Seems like could be closed.
@dmfilipenko thanks for the information.
I'll look at this problem in the near time. In the ideal world, this should work as you write in the first comment.
BTW. Many thanks for your donation 🍻
@nodkz, thanks for a great library!