Skip to content

Commit 5337096

Browse files
committed
Added Feature Flag to enable Whatsapp Sandbox
1 parent fb6d652 commit 5337096

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ Your balance:
7373

7474
Please see the other examples for a complete overview of all the available API calls.
7575

76+
Conversations WhatsApp Sandbox
77+
-------------
78+
To use the whatsapp sandbox you need to add `messagebird.Feature.ENABLE_CONVERSATIONSAPI_WHATSAPP_SANDBOX` to the list of features you want enabled. Don't forget to replace `YOUR_ACCESS_KEY` with your actual access key.
79+
80+
```python
81+
client = messagebird.Client('1ekjMs368KTRlP0z6zfG9P70z', features=[messagebird.Feature.ENABLE_CONVERSATIONSAPI_WHATSAPP_SANDBOX])
82+
```
83+
7684
Documentation
7785
-------------
7886
Complete documentation, instructions, and examples are available at:

messagebird/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
from messagebird.client import Client, ErrorException
1+
from messagebird.client import Client, ErrorException, Feature
22
from messagebird.signed_request import SignedRequest

messagebird/client.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import sys
22
import json
3+
import enum
34

45
from messagebird.balance import Balance
56
from messagebird.contact import Contact, ContactList
@@ -16,13 +17,18 @@
1617
from messagebird.conversation import Conversation, ConversationList
1718
from messagebird.conversation_webhook import ConversationWebhook, ConversationWebhookList
1819

20+
1921
ENDPOINT = 'https://rest.messagebird.com'
2022
CLIENT_VERSION = '1.4.1'
2123
PYTHON_VERSION = '%d.%d.%d' % (sys.version_info[0], sys.version_info[1], sys.version_info[2])
2224
USER_AGENT = 'MessageBird/ApiClient/%s Python/%s' % (CLIENT_VERSION, PYTHON_VERSION)
2325
REST_TYPE = 'rest'
2426

2527
CONVERSATION_API_ROOT = 'https://conversations.messagebird.com/v1/'
28+
CONVERSATION_API_WHATSAPP_SANDBOX_ROOT = 'https://whatsapp-sandbox.messagebird.com/v1/'
29+
30+
31+
2632
CONVERSATION_PATH = 'conversations'
2733
CONVERSATION_MESSAGES_PATH = 'messages'
2834
CONVERSATION_WEB_HOOKS_PATH = 'webhooks'
@@ -35,20 +41,25 @@ def __init__(self, errors):
3541
message = ' '.join([str(e) for e in self.errors])
3642
super(ErrorException, self).__init__(message)
3743

44+
class Feature(enum.Enum):
45+
ENABLE_CONVERSATIONSAPI_WHATSAPP_SANDBOX = 1
3846

3947
class Client(object):
40-
def __init__(self, access_key, http_client=None):
48+
49+
def __init__(self, access_key, http_client=None, features=[]):
4150
self.access_key = access_key
4251
self.http_client = http_client
52+
53+
self.conversation_api_root = CONVERSATION_API_WHATSAPP_SANDBOX_ROOT if Feature.ENABLE_CONVERSATIONSAPI_WHATSAPP_SANDBOX in features else CONVERSATION_API_ROOT
4354

4455
def _get_http_client(self, type=REST_TYPE):
4556
if self.http_client:
4657
return self.http_client
4758

48-
if type == REST_TYPE:
49-
return HttpClient(ENDPOINT, self.access_key, USER_AGENT)
50-
51-
return HttpClient(CONVERSATION_API_ROOT, self.access_key, USER_AGENT)
59+
if type == CONVERSATION_TYPE:
60+
return HttpClient(self.conversation_api_root, self.access_key, USER_AGENT)
61+
62+
return HttpClient(ENDPOINT, self.access_key, USER_AGENT)
5263

5364
def request(self, path, method='GET', params=None, type=REST_TYPE):
5465
"""Builds a request, gets a response and decodes it."""

0 commit comments

Comments
 (0)