cic-internal-integration/apps/cic-ussd/cic_ussd/cache.py

54 lines
945 B
Python
Raw Permalink Normal View History

# standard imports
import hashlib
import logging
2021-02-06 16:13:47 +01:00
# third-party imports
from redis import Redis
logg = logging.getLogger()
2021-02-06 16:13:47 +01:00
2021-08-06 18:29:01 +02:00
class Cache:
store: Redis = None
def cache_data(key: str, data: str):
"""
:param key:
:type key:
:param data:
:type data:
:return:
:rtype:
"""
2021-08-06 18:29:01 +02:00
cache = Cache.store
cache.set(name=key, value=data)
cache.persist(name=key)
2021-08-06 18:29:01 +02:00
logg.debug(f'caching: {data} with key: {key}.')
def get_cached_data(key: str):
"""
:param key:
:type key:
:return:
:rtype:
"""
2021-08-06 18:29:01 +02:00
cache = Cache.store
return cache.get(name=key)
2021-08-06 18:29:01 +02:00
def cache_data_key(identifier: bytes, salt: str):
"""
:param identifier:
:type identifier:
:param salt:
:type salt:
:return:
:rtype:
"""
hash_object = hashlib.new("sha256")
hash_object.update(identifier)
hash_object.update(salt.encode(encoding="utf-8"))
return hash_object.digest().hex()