Source code for ingenico.connect.sdk.factory
from ConfigParser import ConfigParser
from communicator import Communicator
from communicator_configuration import CommunicatorConfiguration
from client import Client
from meta_data_provider import MetaDataProvider
from session import Session
from ingenico.connect.sdk.defaultimpl.default_authenticator import DefaultAuthenticator
from ingenico.connect.sdk.defaultimpl.default_connection import DefaultConnection
from ingenico.connect.sdk.defaultimpl.default_marshaller import DefaultMarshaller
[docs]class Factory:
"""
Ingenico ePayments platform factory for several SDK components.
"""
def __init__(self):
pass
[docs] @staticmethod
def create_configuration(configuration_file_name, api_key_id, secret_api_key):
"""
Creates a CommunicatorConfiguration based on the configuration values in configuration_file_name, api_key_id and secret_api_key.
"""
try:
parser = ConfigParser()
parser.read(configuration_file_name)
with open(configuration_file_name) as f:
parser.readfp(f)
return CommunicatorConfiguration(properties=parser,
api_key_id=api_key_id,
secret_api_key=secret_api_key)
except IOError as e:
raise RuntimeError("Unable to read configuration located at {}".format(e.filename), e)
[docs] @staticmethod
def create_session_from_configuration(communicator_configuration,
meta_data_provider=None,
connection=None,
authenticator=None):
"""
Creates a Session based on the configuration stored in the CommunicatorConfiguration argument
"""
# If an authenticator is not given, api_key_id and secret_api_key are used to create a DefaultAuthenticator used to create the session.
if meta_data_provider is None:
meta_data_provider = MetaDataProvider(integrator=communicator_configuration.integrator,
shopping_cart_extension=communicator_configuration.shopping_cart_extension)
if connection is None:
connection = DefaultConnection(communicator_configuration.connect_timeout,
communicator_configuration.socket_timeout,
communicator_configuration.max_connections,
communicator_configuration.proxy_configuration)
if authenticator is None:
authenticator = DefaultAuthenticator(communicator_configuration.authorization_type,
communicator_configuration.api_key_id,
communicator_configuration.secret_api_key)
return Session(api_endpoint=communicator_configuration.api_endpoint,
meta_data_provider=meta_data_provider,
connection=connection,
authenticator=authenticator)
[docs] @staticmethod
def create_session_from_file(configuration_file_name, api_key_id, secret_api_key,
meta_data_provider=None,
connection=None,
authenticator=None):
"""
Creates a Session based on the configuration values in configuration_file_name, api_id_key and secret_api_key.
"""
configuration = Factory.create_configuration(configuration_file_name, api_key_id, secret_api_key)
return Factory.create_session_from_configuration(configuration,
meta_data_provider=meta_data_provider,
connection=connection,
authenticator=authenticator)
[docs] @staticmethod
def create_communicator_from_session(session):
"""
Create a Communicator based on the settings stored in the Session argument
"""
return Communicator(session, DefaultMarshaller.INSTANCE())
[docs] @staticmethod
def create_communicator_from_configuration(communicator_configuration):
"""
Create a Communicator based on the configuration stored in the CommunicatorConfiguration argument
"""
session = Factory.create_session_from_configuration(communicator_configuration)
return Communicator(session, DefaultMarshaller.INSTANCE())
[docs] @staticmethod
def create_communicator_from_file(configuration_file_name, api_key_id, secret_api_key):
"""
Creates a Communicator based on the configuration values in configuration_file_name, api_key_id and secret_api_key.
"""
configuration = Factory.create_configuration(configuration_file_name, api_key_id, secret_api_key)
session = Factory.create_session_from_configuration(configuration)
return Communicator(session, DefaultMarshaller.INSTANCE())
[docs] @staticmethod
def create_client_from_configuration(communicator_configuration):
"""
Create a Client based on the configuration stored in the CommunicatorConfiguration argument
"""
communicator = Factory.create_communicator_from_configuration(communicator_configuration)
return Client(communicator)
[docs] @staticmethod
def create_client_from_communicator(communicator):
"""
Create a Client based on the settings stored in the Communicator argument
"""
return Client(communicator)
[docs] @staticmethod
def create_client_from_session(session):
"""
Create a Client based on the settings stored in the Session argument
"""
communicator = Factory.create_communicator_from_session(session)
return Client(communicator)
[docs] @staticmethod
def create_client_from_file(configuration_file_name, api_key_id, secret_api_key):
"""
Creates a Client based on the configuration values in configuration_file_name, api_key_id and secret_api_key.
"""
communicator = Factory.create_communicator_from_file(configuration_file_name, api_key_id, secret_api_key)
return Client(communicator)