Je suis en train d’implémenter une requête vers le dunipod pour la données de distance et la prochaine certification à renouveler (wot wizard dans Tikka).
Mais il manque la donnée nommé “qualité” de wot wizard. J’ai demandé à l’IA quoi te demander comme données pour afficher la qualité comme dans wot wizard
xx% (référents à stepmax - 1 / total référents)
Penses-tu, connaissant le gql, que la colonne qualité peut être implémentée correctement maintenant ou qu’elle nécessite d’autres données du serveur. S’il manque des données pour la qualité, lesquelles (je peux les demander au développeur).
Bonne question — j’ai le schéma complet sous les yeux, voici l’analyse précise.
Verdict : la qualité ne peut pas être implémentée correctement avec le schéma actuel
Pourquoi
La règle de qualité est identique à la règle de distance, mais avec
stepMax − 1pas
(au lieu de stepMax). Or le schéma dunipod n’expose qu’un seul snapshot de distance par identité :type Identity { ... distanceRule: DistanceRuleSnapshot # ← un seul, avec maxDepth fixe } type DistanceRuleSnapshot { perbill: Int! accessibleReferees: Int! effectiveAccessibleReferees: Int! refereeCount: Int! effectiveRefereeCount: Int! passes: Boolean! maxDepth: Int! # vraisemblablement = stepMax minimumRequiredPerbill: Int! refereeThreshold: Int! ... }Il n’y a aucun
qualityRule, aucun second snapshot à maxDepth − 1, et rien dans DistanceRuleCalculationConfig (config globale) qui suggère un calcul de qualité séparé.
Pourquoi on ne peut pas la déduire côté clienteffectiveAccessibleReferees est le nombre de référents atteints à maxDepth = stepMax. Pour la qualité, il faudrait le même comptage à stepMax − 1 — c’est-à-dire la distribution des distances (combien de référents à 1 pas, 2 pas, …), qui n’est pas exposée. Aucune transformation de perbill/ accessibleReferees ne peut produire la valeur à stepMax − 1 : c’est un résultat de calcul de graphe, pas un dérivé.
Ce qu’il faut demander au développeur dunipod
La demande la plus simple, qui réutilise l’existant :
Sur le type Identity, ajouter un second champ calculé au même format que distanceRule, mais avec maxDepth = stepMax − 1 :
graphql qualityRule: DistanceRuleSnapshot
Variantes acceptables (à proposer si l’architecture dunipod préfère) :
- un paramètre sur le champ : distanceRule(maxDepth: Int): DistanceRuleSnapshot (permet de demander stepMax ou stepMax − 1 — plus flexible, couvre aussi les dev futures),
- ou, dans le snapshot existant, un champ supplémentaire : qualityPasses: Boolean! + qualityPerbill: Int! + qualityAccessibleReferees: Int! (le strict minimum pour l’onglet : % = qualityAccessibleReferees / effectiveRefereeCount * 100, mais moins propre).
La première option (qualityRule: DistanceRuleSnapshot sur Identity) est la plus propre et la plus alignée avec la règle officielle.
Voilà, si tu le veux bien, l’ajout de la qualité dans Dunipod serait un must pour Tikka et autres clients palliant l’absence de Wot Wizard.