Je pourrais me tromper, mais il semble que les données renvoyées par un callback ‘post’ contiennent category_slug mais pas category_id, tandis que celles renvoyées par un callback ‘topic’ contiennent category_id mais pas category_slug.
Si c’est bien le cas (et que je ne passe pas à côté d’une configuration quelque part), il serait préférable que les deux callbacks se standardisent soit sur category_id, soit sur category_slug, ou qu’ils renvoient les deux.
Ce serait également excellent si les deux types incluaient parent_category_id et parent_category_slug lorsqu’il s’agit d’un post ou d’un topic dans une sous-catégorie. Pour l’instant, les deux fournissent category_id, ce qui n’indique pas s’il s’agit d’une catégorie ou d’une sous-catégorie.
Compte-tenu de l’intention de mettre à jour les webhooks pour qu’ils incluent toujours à la fois category_id et category_slug, indépendamment du fait que le webhook concerne un ‘post’ ou un ‘topic’ ?
Les informations de rappel actuelles pour les ‘posts’ sont sous-optimales car il n’existe aucun moyen fiable de déterminer à quelle catégorie ils appartiennent… car (si je comprends bien) category_slug n’a pas besoin d’être unique. Si vous avez plusieurs catégories différentes, chacune avec trois sous-catégories ayant les mêmes slugs (car vous devez que la navigation des sous-catégories ait le même aspect pour l’utilisateur), vous ne pouvez pas savoir dans quelle sous-catégorie le ‘post’ a été effectué uniquement grâce au slug.
Je ne suis pas développeur Ruby, mais je me demande s’il y a un bug dans la classe post_serializer :
def include_category_id?
@add_title
end
Cela ne devrait-il pas être :
def include_category_id?
topic&.category_id.present?
end
J’ai créé une PR pour illustrer ce changement. Cela peut sembler fou, mais cela pourrait aider à trouver la véritable solution…