summaryrefslogtreecommitdiff
path: root/inboxapp-service/app/factory/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'inboxapp-service/app/factory/__init__.py')
-rw-r--r--inboxapp-service/app/factory/__init__.py25
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)
+