|
# retoor <retoor@molodetz.nl>
|
|
|
|
from .groups import ORDERED_GROUPS as API_GROUPS
|
|
|
|
|
|
_GROUPS_BY_SLUG = {group["slug"]: group for group in API_GROUPS}
|
|
|
|
|
|
def get_group(slug):
|
|
return _GROUPS_BY_SLUG.get(slug)
|
|
|
|
|
|
def api_doc_pages():
|
|
return [
|
|
{
|
|
"slug": group["slug"],
|
|
"title": group["title"],
|
|
"kind": "api",
|
|
"admin": group.get("admin", False),
|
|
"dynamic": group.get("dynamic", False),
|
|
}
|
|
for group in API_GROUPS
|
|
]
|
|
|
|
|
|
def _substitute(value, replacements):
|
|
if isinstance(value, str):
|
|
for token, replacement in replacements.items():
|
|
value = value.replace(token, replacement)
|
|
return value
|
|
if isinstance(value, list):
|
|
return [_substitute(item, replacements) for item in value]
|
|
if isinstance(value, dict):
|
|
return {key: _substitute(item, replacements) for key, item in value.items()}
|
|
return value
|
|
|
|
|
|
def render_group(slug, base, username, api_key):
|
|
group = get_group(slug)
|
|
if not group:
|
|
return None
|
|
replacements = {
|
|
"{{ base }}": base,
|
|
"{{ username }}": username or "YOUR_USERNAME",
|
|
"{{ api_key }}": api_key or "YOUR_API_KEY",
|
|
}
|
|
return _substitute(group, replacements)
|