Tengo una consulta para obtener proyectos de la base de datos que tiene argumentos como se muestra a continuación para filtrar proyectos. ¿Cómo usaría los mismos argumentos en @resolveField para filtrar los valores de formulario del proyecto?
@Query(() => [Project]) async getProjects(@Args() projectArgs: ProjectArgs) { return await this.projectsService.find(projectArgs); } @ResolveField("formValues", () => [FormValues]) async getFormValues(@Parent() project: Project) { const { id } = project; return await this.formsService.findValues({ projectId: id}); }Me he enfrentado a este problema antes y, a través de una búsqueda minuciosa, he llegado a la conclusión de que la forma mejor y escalable de hacerlo es definir los argumentos para el propio solucionador de campo. Así es como lo haces
@ResolveField("formValues", () => [FormValues]) async getFormValues(@Args() projectArgs: ProjectArgs) { ....///// }De esta manera, deberá pasar los argumentos tal como los pasa en la consulta principal. O puede omitirlos si no desea filtrar los valores del formulario
Hay otros enfoques que puede utilizar. Una de ellas es establecer la información como
@Query(() => [Project]) async getProjects(@Args() projectArgs: ProjectArgs, @Info() info) { info.variableValues.some_key = value return await this.projectsService.find(projectArgs); }Pero esto no se escalará y lo hará muy estrechamente acoplado