Source code for ingenico.connect.sdk.webhooks.in_memory_secret_key_store

from secret_key_not_available_exception import SecretKeyNotAvailableException
from secret_key_store import SecretKeyStore


[docs]class InMemorySecretKeyStore(SecretKeyStore): """ An in-memory secret key store. This implementation can be used in applications where secret keys can be specified at application startup. """
[docs] @staticmethod def INSTANCE(): return _IN_MEMORY_SECRET_KEY_CACHE_INSTANCE
__store = {}
[docs] def get_secret_key(self, key_id): try: secret_key = self.__store[key_id] except KeyError: raise SecretKeyNotAvailableException("could not find secret key for key id " + key_id, key_id) return secret_key
[docs] def store_secret_key(self, key_id, secret_key): """ Stores the given secret key for the given key ID. """ if key_id is None or not key_id.strip(): raise ValueError("key_id is required") elif secret_key is None or not secret_key.strip(): raise ValueError("secret_key is required") self.__store[key_id] = secret_key
[docs] def remove_secret_key(self, key_id): """ Removes the secret key for the given key ID. """ self.__store.pop(key_id)
[docs] def clear(self): """ Removes all stored secret keys. """ self.__store.clear()
_IN_MEMORY_SECRET_KEY_CACHE_INSTANCE = InMemorySecretKeyStore()