Module: CircleSo::Token

Defined in:
lib/circle_so/token.rb

Overview

Circle issues two admin token types that look identical but hit different APIs:

:v2      Business-plan token — works against /api/admin/v2
:v1      Professional-plan token — only /api/v1 (no access groups)
:invalid not a usable token

A v1 token on a v2 endpoint returns a plain HTTP 401, indistinguishable from an invalid token — so probe v2 first, then v1, to give users an actionable three-state answer.

Constant Summary collapse

BASE_URL_V1 =
"https://app.circle.so/api/v1"

Class Method Summary collapse

Class Method Details

.detect_version(token, base_url_v2: Client::BASE_URL, base_url_v1: BASE_URL_V1) ⇒ Object



22
23
24
25
26
27
# File 'lib/circle_so/token.rb', line 22

def detect_version(token, base_url_v2: Client::BASE_URL, base_url_v1: BASE_URL_V1)
  return :v2 if probe(base_url_v2, "Bearer #{token}")
  return :v1 if probe(base_url_v1, "Token #{token}")

  :invalid
end