Skip to content

Commit 01033f5

Browse files
simplify example in docs
1 parent b12d578 commit 01033f5

File tree

1 file changed

+39
-37
lines changed

1 file changed

+39
-37
lines changed

src/posit/connect/client.py

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -206,45 +206,47 @@ def with_user_session_token(self, token: str) -> Client:
206206
207207
Examples
208208
--------
209-
>>> from posit.connect import Client
210-
>>> client = Client().with_user_session_token("my-user-session-token")
209+
```python
210+
from posit.connect import Client
211+
client = Client().with_user_session_token("my-user-session-token")
212+
```
211213
212214
Example using user session token from Shiny session:
213-
>>> from posit.connect import Client
214-
>>> from shiny.express import render, session
215-
>>>
216-
>>> client = Client()
217-
>>>
218-
>>> @reactive.calc
219-
>>> def visitor_client():
220-
... ## read the user session token and generate a new client
221-
... user_session_token = session.http_conn.headers.get(
222-
... "Posit-Connect-User-Session-Token"
223-
... )
224-
... return client.with_user_session_token(user_session_token)
225-
>>> @render.text
226-
>>> def user_profile():
227-
... # fetch the viewer's profile information
228-
... return visitor_client().me
229-
230-
Example with fallback when header is missing in API request:
231-
>>> from posit.connect import Client
232-
>>> import requests
233-
>>>
234-
>>> def get_client(request):
235-
... base_client = Client()
236-
... token = request.headers.get("Posit-Connect-User-Session-Token")
237-
... if token:
238-
... return base_client.with_user_session_token(token)
239-
... else:
240-
... return None
241-
>>> # Simulate request without header
242-
>>> mock_request = requests.Request()
243-
>>> client = get_client(mock_request)
244-
>>> if client:
245-
... # perform actions with SDK
246-
... else:
247-
... print("This app requires a user session token to operate.")
215+
```python
216+
from posit.connect import Client
217+
from shiny.express import render, session
218+
219+
client = Client()
220+
221+
@reactive.calc
222+
def visitor_client():
223+
## read the user session token and generate a new client
224+
user_session_token = session.http_conn.headers.get(
225+
"Posit-Connect-User-Session-Token"
226+
)
227+
return client.with_user_session_token(user_session_token)
228+
@render.text
229+
def user_profile():
230+
# fetch the viewer's profile information
231+
return visitor_client().me
232+
```
233+
234+
Example of when the visitor's token could not be retrieved (for
235+
example, if this app allows unauthenticated access) and handle
236+
that in cases where a token is expected.
237+
```python
238+
from posit.connect import Client
239+
import requests
240+
241+
# Simulate request without header
242+
mock_request = requests.Request()
243+
visitor_client = None
244+
token = request.headers.get("Posit-Connect-User-Session-Token")
245+
if token:
246+
visitor_client = Client().with_user_session_token(token)
247+
else:
248+
print("This app requires a user session token to operate.")
249+
```
248250
"""
249251
if token is None or token == "":
250252
raise ValueError("token must be set to non-empty string.")

0 commit comments

Comments
 (0)