-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Resolver de Eventos: Retorno Incorrecto de Comunidades Asociadas #101
Comments
Analizado el código relacionado con el problema descrito en este issue: Lines 72 to 88 in f90245c
Propongo el siguiente cambio para mejorar el manejo de la relación many-to-many entre eventos y comunidades: communities: t.field({
type: [CommunityRef],
resolve: async (root, args, ctx) => {
const communities = await ctx.DB.query.communitySchema.findMany({
where: inArray(
eventsSchema.id,
ctx.DB.select({ id: eventsToCommunitiesSchema.communityId })
.from(eventsToCommunitiesSchema)
.where(eq(eventsToCommunitiesSchema.eventId, root.id)),
),
orderBy(fields, operators) {
return operators.desc(fields.createdAt);
},
});
return communities.map((community) =>
selectCommunitySchema.parse(community),
);
},
}), Este cambio, que utiliza findMany en lugar de findFirst, permitirá recuperar todas las comunidades asociadas a un evento, reflejando así correctamente la estructura de datos many-to-many del modelo. Si no hay problema, puedo implementar esta solución en un Pull Request actualizando los tests correspondientes. |
Me parece genial! :D |
LMK si lo quieres hacer tu/tienes tiempo, o yo subo un PR 🙏🏼 |
En el proyecto, se maneja una relación many-to-many entre eventos y comunidades.
Esta relación se evidencia en la siguiente imagen, específicamente en la tabla events_communities:
Sin embargo, el código actual devuelve solo la primera comunidad asociada a cada evento, lo cual parece incoherente con la naturaleza de la relación many-to-many. El fragmento de código que está causando este comportamiento es el siguiente:
gql_api/src/schema/events.ts
Lines 72 to 88 in f90245c
Además, en algunas consultas, la comunidad devuelta no corresponde a la asociada al evento, similar al problema reportado en el issue #81.
Un ejemplo concreto de este problema se observa en la siguiente query y sus resultados, donde el evento con id 9d38e167-e376-476d-829d-10953675921e está vinculado incorrectamente a la comunidad con id c012d08f-e8e5-40ea-997a-d78bc1de4952:
The text was updated successfully, but these errors were encountered: