docs: add docstrings with Tink API links to all demo step handlers
All checks were successful
Build and Deploy / deploy (push) Successful in 1m15s
All checks were successful
Build and Deploy / deploy (push) Successful in 1m15s
This commit is contained in:
@@ -130,6 +130,11 @@ async def debug_session(request: Request):
|
||||
|
||||
@router.get("/demo/step/1", response_class=HTMLResponse)
|
||||
async def step1(request: Request):
|
||||
"""
|
||||
Step 1: Client Credentials authentication.
|
||||
Fetches an app-level token with scope 'user:create,authorization:grant'.
|
||||
Docs: https://docs.tink.com/api#connectivity/oauth/create-an-oauth-token
|
||||
"""
|
||||
sess = _session(request)
|
||||
client = _client(log_cb=_logger(sess))
|
||||
s = get_settings()
|
||||
@@ -169,6 +174,10 @@ async def step1(request: Request):
|
||||
|
||||
@router.get("/demo/step/2", response_class=HTMLResponse)
|
||||
async def step2_get(request: Request):
|
||||
"""
|
||||
Step 2 (GET): Render user creation form.
|
||||
Shows existing user if already created in this session.
|
||||
"""
|
||||
sess = _session(request)
|
||||
s = get_settings()
|
||||
app_token = _load_token(sess, "app_token")
|
||||
@@ -196,6 +205,12 @@ async def step2_get(request: Request):
|
||||
async def step2_post(request: Request,
|
||||
customer_name: str = Form(default=""),
|
||||
market: str = Form(default="DK")):
|
||||
"""
|
||||
Step 2 (POST): Create a Tink user tied to a customer reference.
|
||||
external_user_id is built from the customer name + random hex suffix to ensure uniqueness.
|
||||
Tink returns a user_id (UUID) that is stored in session for subsequent calls.
|
||||
Docs: https://docs.tink.com/api#user/create-user
|
||||
"""
|
||||
sess = _session(request)
|
||||
s = get_settings()
|
||||
app_token = _load_token(sess, "app_token")
|
||||
@@ -259,6 +274,13 @@ CONSOLE_CALLBACK = "https://console.tink.com/callback"
|
||||
|
||||
@router.get("/demo/step/3", response_class=HTMLResponse)
|
||||
async def step3_get(request: Request):
|
||||
"""
|
||||
Step 3: Bank connection via Tink Link.
|
||||
Calls authorization-grant/delegate to get a one-time code, then builds the
|
||||
Tink Link URL that redirects the user to select and log into their bank.
|
||||
After successful bank login, Tink redirects back to /callback with an auth code.
|
||||
Docs: https://docs.tink.com/resources/tink-link/tink-link-web-permanent-users
|
||||
"""
|
||||
sess = _session(request)
|
||||
s = get_settings()
|
||||
client = _client(log_cb=_logger(sess))
|
||||
@@ -452,6 +474,11 @@ async def tink_callback(request: Request, code: Optional[str] = None,
|
||||
|
||||
@router.get("/demo/step/4", response_class=HTMLResponse)
|
||||
async def step4(request: Request):
|
||||
"""
|
||||
Step 4: List accounts (v2 endpoint).
|
||||
Requires a user_token from the callback. Falls back to mock data if demo_mode is set.
|
||||
Docs: https://docs.tink.com/api#account-service-v2/account/list-accounts
|
||||
"""
|
||||
sess = _session(request)
|
||||
s = get_settings()
|
||||
user_token = _load_token(sess, "user_token")
|
||||
@@ -501,6 +528,11 @@ async def step4(request: Request):
|
||||
|
||||
@router.get("/demo/step/5", response_class=HTMLResponse)
|
||||
async def step5(request: Request, account_id: Optional[str] = None):
|
||||
"""
|
||||
Step 5: List transactions (v2 endpoint), optionally filtered by account_id.
|
||||
Uses cursor-based pagination via nextPageToken.
|
||||
Docs: https://docs.tink.com/api#transaction-service-v2/transaction/list-transactions
|
||||
"""
|
||||
sess = _session(request)
|
||||
s = get_settings()
|
||||
user_token = _load_token(sess, "user_token")
|
||||
@@ -549,6 +581,12 @@ async def step5(request: Request, account_id: Optional[str] = None):
|
||||
|
||||
@router.get("/demo/step/6", response_class=HTMLResponse)
|
||||
async def step6(request: Request):
|
||||
"""
|
||||
Step 6: Webhooks — list existing and register a new endpoint.
|
||||
Demonstrates real-time event delivery (account updates, new transactions).
|
||||
Webhook receiver is at /webhooks/tink — logs payloads to api_log.
|
||||
Docs: https://docs.tink.com/api#webhook/create-webhook-endpoint
|
||||
"""
|
||||
sess = _session(request)
|
||||
s = get_settings()
|
||||
is_demo = sess.get("demo_mode") or s.demo_mode
|
||||
|
||||
Reference in New Issue
Block a user