@@ -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