C’est peut-être ma décennie d’expérience dans les banques, mais la façon dont j’imagine le rachat de points est d’émettre des événements personnalisés de valeur négative.
Par exemple, disons que vous avez un utilisateur qui souhaite échanger des points contre un T-shirt, et que ce T-shirt coûte 10 000 points. Le flux sur votre système d’échange serait le suivant :
-
Vérifiez si l’utilisateur a suffisamment de points :
curl https://meta.discourse.org/u/falco.json -s | jq . | grep score "gamification_score": 89386, -
Émettez un événement de « retrait de points »
jo -p user_id="13" date="2023-04-14" points="-10000" description="T-Shirt Redeem - order #123" | curl --json @- -XPOST http://example/admin/plugins/gamification/score_events -H "Api-Key: apikeyhere" -H "Api-Username: system"
Vous voudrez encapsuler cela dans un sémaphore quelconque, car c’est l’exemple classique d’utilisation de ceux-ci, mais c’est l’essentiel du flux de travail proposé.
C’est une fonctionnalité très récente, alors faites-moi savoir si le flux de travail proposé ne fonctionne pas correctement.
Cela fonctionne bien pour moi, à la fois dans le navigateur et via l’API. C’est un point d’accès administrateur, vous devez donc être un administrateur connecté via le navigateur, ou passer des clés API comme expliqué dans l’OP.
