fmn.backends.fasjson module

class fmn.backends.fasjson.FASJSONAsyncProxy(base_url: str)[source]

Bases: APIClient

Proxy for the FASJSON API endpoints used in FMN

API_VERSION = 'v1'
FAS_TOPIC_RE = re.compile('fas\\.(?P<usergroup>user|group)\\.(?P<event>member\\.sponsor|create|update)$')
property api_url: str
determine_next_page_params(url: str, params: dict, result: dict) tuple[str, dict] | tuple[None, None][source]

Determine parameters for next page.

Parameters:
  • url – API endpoint URL

  • params – Query parameters (can be modified)

  • result – Result dictionary of previous query

Returns:

Tuple of (new URL, new params dict) or (None, None) if last page

async get_user(*, username: str) dict[source]
async get_user_groups(*, username: str) dict[source]
async invalidate_on_message(message: Message) None[source]
payload_field: str | None = 'result'

The payload field in a paginated response.

async search_users(username: str | None = None, username__exact: str | None = None, **params: dict[str, Any]) list[dict][source]
fmn.backends.fasjson.get_fasjson_proxy() FASJSONAsyncProxy[source]