# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
-# Cookies stor
+import logging
+
+from fba.helpers import domain as domain_helper
+
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+
+# Cookies storage
_cookies = {}
def store (domain: str, cookies: dict):
- # DEBUG: print(f"DEBUG: domain='{domain}',cookies()={len(cookies)} - CALLED!")
- if not isinstance(domain, str):
- raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'")
- elif domain == "":
- raise ValueError("Parameter 'domain' is empty")
- elif not isinstance(cookies, dict):
- raise ValueError(f"Parameter cookies[]='{type(cookies)}' is not 'dict'")
+ logger.debug("domain='%s',cookies()=%d - CALLED!", domain, len(cookies))
+ domain_helper.raise_on(domain)
+ if not isinstance(cookies, dict):
+ raise ValueError(f"Parameter cookies[]='{type(cookies)}' is not of type 'dict'")
_cookies[domain] = cookies
- # DEBUG: print(f"DEBUG: EXIT!")
+ logger.debug("EXIT!")
def get_all(domain: str) -> dict:
- # DEBUG: print(f"DEBUG: domain='{domain}' - CALLED!")
- if not isinstance(domain, str):
- raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'")
- elif domain == "":
- raise ValueError("Parameter 'domain' is empty")
- elif not domain in _cookies:
- raise Exception(f"domain='{domain}' has no cookies stored, maybe invoke store() first?")
-
- # DEBUG: print(f"DEBUG: _cookies[{domain}]()={len(_cookies[domain])} - EXIT!")
+ logger.debug("domain='%s' - CALLED!", domain)
+ domain_helper.raise_on(domain)
+
+ if domain not in _cookies:
+ return dict()
+
+ logger.debug("_cookies[%s]()=%d - EXIT!", domain, len(_cookies[domain]))
return _cookies[domain]
+
+def has (domain: str) -> bool:
+ logger.debug("domain='%s' - CALLED!", domain)
+ domain_helper.raise_on(domain)
+
+ has_cookies = domain in _cookies
+
+ logger.debug("has_cookies='%s' - EXIT!", has_cookies)
+ return has_cookies
+
+def clear (domain: str):
+ logger.debug("domain='%s' - CALLED!", domain)
+ domain_helper.raise_on(domain)
+
+ if has(domain):
+ logger.debug("Removing cookies for domain='%s' ...", domain)
+ del _cookies[domain]
+
+ logger.debug("EXIT!")