diff options
Diffstat (limited to 'inboxapp-service/app/factory/__init__.py')
-rw-r--r-- | inboxapp-service/app/factory/__init__.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/inboxapp-service/app/factory/__init__.py b/inboxapp-service/app/factory/__init__.py new file mode 100644 index 00000000..c7f3cf32 --- /dev/null +++ b/inboxapp-service/app/factory/__init__.py @@ -0,0 +1,25 @@ +import inboxapp + +class ProviderNotFoundException(Exception): + def __init__(self, provider): + self.provider = provider + + def __str__(self): + return "Provider '%s' not found" % self.provider + +class ClientFactory: + + @staticmethod + def create(provider, account): + if provider == 'inboxapp': + return inboxapp.Client(account) + raise ProviderNotFoundException(provider) + +class MailConverterFactory: + + @staticmethod + def create(provider, client): + if provider == 'inboxapp': + return inboxapp.MailConverter(client) + raise ProviderNotFoundException(provider) + |