외부 시스템과 Discourse Gamification을 연동하는 방법(포인트 사용 및 지급)

저는 은행에서 10년간 근무한 경험 탓인지, 포인트 소액 방식을 음수 값의 커스텀 이벤트를 발행하는 것으로 구상하고 있습니다.

예를 들어, 사용자가 티셔츠를 포인트로 교환하려고 한다고 가정해 보겠습니다. 그리고 그 티셔츠의 가격이 10k 포인트라고 합시다. 소액 시스템의 흐름은 다음과 같습니다:

  1. 사용자가 충분한 포인트를 가지고 있는지 확인:

    curl https://meta.discourse.org/u/falco.json -s | jq . | grep score
        "gamification_score": 89386,
    
  2. “포인트 인출” 이벤트를 발행합니다.

    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"
    

이것은 세마포어(semaphore)를 사용하는 교과서적인 예시이므로, 어떤 형태로든 세마포어로 감싸야 합니다. 하지만 제안된 워크플로우의 요지는 바로 이겁니다.

이것은 매우 최근의 기능입니다. 제안된 워크플로우가 올바르게 작동하지 않는다면 알려 주세요.

저에게는 브라우저와 API를 통해 모두 정상적으로 작동합니다. 이는 관리자 엔드포인트이므로, 브라우저로 로그인한 관리자가 되어야 하거나, OP에서 설명한 대로 API 키를 전달해야 합니다.

3개의 좋아요