Coverage for benefits/enrollment_switchio/session.py: 100%
28 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-23 18:20 +0000
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-23 18:20 +0000
1import logging
3from django.http import HttpRequest
5logger = logging.getLogger(__name__)
8class Session:
10 _keys_registration_id = "enrollment_switchio_registration_id"
11 _keys_gateway_url = "enrollment_switchio_gateway_url"
13 def __init__(self, request: HttpRequest, reset: bool = False, registration_id: str = None, gateway_url: str = None):
14 """Initialize a new Switchio session wrapper for this request."""
16 self.request = request
17 self.session = request.session
19 if reset:
20 self.registration_id = None
21 self.gateway_url = None
22 if registration_id:
23 self.registration_id = registration_id
24 if gateway_url:
25 self.gateway_url = gateway_url
27 @property
28 def registration_id(self) -> str:
29 """Get the registration ID from the request's session, or None."""
30 return self.session.get(self._keys_registration_id)
32 @registration_id.setter
33 def registration_id(self, value: str) -> None:
34 self.session[self._keys_registration_id] = value
36 @property
37 def gateway_url(self) -> str:
38 """Get the gateway URL from the request's session, or None."""
39 return self.session.get(self._keys_gateway_url)
41 @gateway_url.setter
42 def gateway_url(self, value: str) -> None:
43 self.session[self._keys_gateway_url] = value