Skip to content

Commit a27d16b

Browse files
committed
Upgrade API version to v2
1 parent 06ba20c commit a27d16b

6 files changed

Lines changed: 23 additions & 12 deletions

File tree

mambu_tests/tap_generators/test_audit_trail_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ def test_audit_trail_generator_endpoint_config_init(utc_now_mock):
2424

2525
generator = generators[0]
2626

27-
assert generator.endpoint_path == 'v1/events'
27+
assert generator.endpoint_path == 'v2/events'
2828
assert generator.endpoint_api_method == "GET"
29-
assert generator.endpoint_api_version == "v1"
29+
assert generator.endpoint_api_version == "v2"
3030
assert generator.endpoint_api_key_type == "audit"
3131
assert generator.endpoint_params == {
3232
"sort_order": "asc",

tap_mambu/helpers/datetime_utils.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
import singer
12
from pytz import timezone
23
from datetime import datetime
34
from tap_mambu import MambuClient
5+
from tap_mambu.helpers.client import MambuForbiddenError
46
import dateutil.parser
57

8+
LOGGER = singer.get_logger()
9+
610

711
_timezone = None
812
_datetime_formats = [
@@ -22,11 +26,17 @@
2226
]
2327

2428

25-
def get_timezone_info(client: MambuClient):
29+
def get_timezone_info(client: MambuClient, config_timezone: str = None):
2630
global _timezone
27-
response = client.request(method="GET", path="settings/organization", version="v1")
28-
_timezone = timezone(response.get("timeZoneID"))
29-
31+
try:
32+
response = client.request(method="GET", path="setup/organization", version="v2")
33+
_timezone = timezone(response.get("timeZoneID"))
34+
except MambuForbiddenError:
35+
if config_timezone:
36+
LOGGER.warning("Could not get timezone information from Mambu endpoint, using config timezone")
37+
_timezone = timezone(config_timezone)
38+
else:
39+
raise RuntimeError("Could not get timezone information from Mambu endpoint. Please provide valid timezone in config(e.g. US/Pacific).")
3040

3141
def localize(dttm: datetime) -> datetime:
3242
if _timezone is None:

tap_mambu/sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def sync_all_streams(client, config, catalog, state):
3535
from .tap_generators.child_generator import ChildGenerator
3636
from .tap_processors.child_processor import ChildProcessor
3737

38-
get_timezone_info(client)
38+
get_timezone_info(client, config_timezone=config.get("timezone"))
3939

4040
selected_streams = get_selected_streams(catalog)
4141
LOGGER.info('selected_streams: {}'.format(selected_streams))

tap_mambu/tap_generators/audit_trail_generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
class AuditTrailGenerator(TapGenerator):
1111
def _init_endpoint_config(self):
1212
super(AuditTrailGenerator, self)._init_endpoint_config()
13-
self.endpoint_path = "v1/events"
13+
self.endpoint_path = "v2/events"
1414
self.endpoint_api_method = "GET"
1515
self.endpoint_api_version = "v2"
1616
self.endpoint_api_key_type = "audit"

tests/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ def get_properties(self, original_properties=True):
250250
'username': os.environ['TAP_MAMBU_USERNAME'],
251251
'subdomain': os.environ['TAP_MAMBU_SUBDOMAIN'],
252252
'page_size': '90',
253+
'timezone': 'US/Pacific',
253254
'window_size': 30
254255
}
255256

tests/unittests/test_client.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ def test_client_check_access_api_key(mock_requests_session_get):
5353
assert client.base_url == base_url
5454
assert client.page_size == DEFAULT_PAGE_SIZE
5555

56-
mock_requests_session_get.assert_called_once_with(url=f'{base_url}/settings/organization',
57-
headers={'Accept': 'application/vnd.mambu.v1+json',
56+
mock_requests_session_get.assert_called_once_with(url=f'{base_url}/users',
57+
headers={'Accept': 'application/vnd.mambu.v2+json',
5858
'User-Agent': 'MambuTap-User_Agent_Test'})
5959

6060

@@ -77,8 +77,8 @@ def test_client_check_access_user_pass(mock_requests_session_get):
7777
assert client.base_url == base_url
7878
assert client.page_size == 100
7979

80-
mock_requests_session_get.assert_called_once_with(url=f'{base_url}/settings/organization',
81-
headers={'Accept': 'application/vnd.mambu.v1+json',
80+
mock_requests_session_get.assert_called_once_with(url=f'{base_url}/users',
81+
headers={'Accept': 'application/vnd.mambu.v2+json',
8282
'User-Agent': 'MambuTap'})
8383

8484

0 commit comments

Comments
 (0)