graphql-compose-mongoose
graphql-compose-mongoose copied to clipboard
Wrap resolver and set a new extended input to it
Hi! I need to wrap a resolver with a new extended one and I need to set a custom input with this wrapper
This is what I've got:
const TypeComposer = composeWithMongoose(myMongooseModel, {});
// I need to use this input with ExtendedQueryResolver wrapper
const ExtendedQueryInput = schemaComposer.createInputTC('
input extendedQueryInput {
newField:Boolean,
filter:FilterFindOneUserInput,
skip:Int,
sort:SortFindOneUserInput
}
');
const ExtendedQueryResolver = (next) => (rp) => {
const { source, args, context, info, projection } = rp;
const { filter, skip, sort, newField } = rp.args || {};
const resultPromise = next(rp);
// ... do stuff
// before calling findOne resolver
return resultPromise.then((payload) => {
//after calling findOne resolver, payload has the result of findOne
if (newField) {
// ... do some other stuff
// finally chain 'return payload;'
} else {
return payload;
}
});
};
var query = {};
query['extendedQuery'] = TypeComposer.getResolver('findOne').wrapResolve(
ExtendedQueryResolver
);
ExtendedQueryInput is the same input that findOne accepts but it has newField
that is needed in order to execute some other instructions if true.
How can this extended input be set to the wrapper?
Possible #275 is relevant
Possible #275 is relevant
Thanks @oklas! I'm having a hard time figuring this out, but maybe hooks will help.