From 4e5420cc325dc8ae084a4d8370d4bdf29ee9d317 Mon Sep 17 00:00:00 2001 From: Andy Lu Date: Thu, 20 Jul 2023 17:13:28 +0000 Subject: [PATCH 1/6] Add a new field to the schema --- tap_mailchimp/schemas/reports_email_activity.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tap_mailchimp/schemas/reports_email_activity.json b/tap_mailchimp/schemas/reports_email_activity.json index 6d4239f..600e2e8 100644 --- a/tap_mailchimp/schemas/reports_email_activity.json +++ b/tap_mailchimp/schemas/reports_email_activity.json @@ -48,6 +48,13 @@ ], "format": "date-time" }, + "_sdc_stitch_timestamp": { + "type": [ + "null", + "string" + ], + "format": "date-time" + }, "ip": { "type": [ "null", From b6175dd46ac879198fd11d26d386d97c7d1866a0 Mon Sep 17 00:00:00 2001 From: Andy Lu Date: Thu, 20 Jul 2023 17:13:54 +0000 Subject: [PATCH 2/6] Mark the new field as part of the primary key --- tap_mailchimp/schema.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tap_mailchimp/schema.py b/tap_mailchimp/schema.py index f44f720..2296542 100644 --- a/tap_mailchimp/schema.py +++ b/tap_mailchimp/schema.py @@ -15,7 +15,8 @@ 'campaign_id', 'action', 'email_id', - 'timestamp' + 'timestamp', + '_sdc_stitch_timestamp', ], 'unsubscribes': ['campaign_id', 'email_id'] } From 3200d72daccd19839caaf8fad2bf190d45992fc7 Mon Sep 17 00:00:00 2001 From: Andy Lu Date: Thu, 20 Jul 2023 17:14:11 +0000 Subject: [PATCH 3/6] Use a nanosecond-precision datetime for `_sdc_stitch_timestamp` --- tap_mailchimp/sync.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tap_mailchimp/sync.py b/tap_mailchimp/sync.py index fc8e063..515a650 100644 --- a/tap_mailchimp/sync.py +++ b/tap_mailchimp/sync.py @@ -268,6 +268,7 @@ def transform_activities(records): new_activity = dict(record_template) for key, value in activity.items(): new_activity[key] = value + new_activity['_sdc_stitch_timestamp'] = str(singer.utils.now()) yield new_activity write_schema(catalog, stream_name) From 0cd9394a220133b551cbdd36f15d171f306e8043 Mon Sep 17 00:00:00 2001 From: Andy Lu Date: Thu, 20 Jul 2023 17:14:53 +0000 Subject: [PATCH 4/6] Whitespace cleanup --- tap_mailchimp/schemas/reports_email_activity.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tap_mailchimp/schemas/reports_email_activity.json b/tap_mailchimp/schemas/reports_email_activity.json index 600e2e8..ae57217 100644 --- a/tap_mailchimp/schemas/reports_email_activity.json +++ b/tap_mailchimp/schemas/reports_email_activity.json @@ -68,4 +68,4 @@ ] } } -} \ No newline at end of file +} From 6f00bfdd81469bb57160dd18aa92e698bc674f63 Mon Sep 17 00:00:00 2001 From: Andy Lu Date: Thu, 3 Aug 2023 09:44:40 -0400 Subject: [PATCH 5/6] Make `_sdc_stitch_timestamp` a string --- tap_mailchimp/schemas/reports_email_activity.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tap_mailchimp/schemas/reports_email_activity.json b/tap_mailchimp/schemas/reports_email_activity.json index ae57217..df5d7df 100644 --- a/tap_mailchimp/schemas/reports_email_activity.json +++ b/tap_mailchimp/schemas/reports_email_activity.json @@ -52,8 +52,7 @@ "type": [ "null", "string" - ], - "format": "date-time" + ] }, "ip": { "type": [ From 538d4651cefb798de40978a3f714276cf06b3585 Mon Sep 17 00:00:00 2001 From: Andy Lu Date: Thu, 3 Aug 2023 14:11:54 +0000 Subject: [PATCH 6/6] Update expected pk in test --- tests/test_sync.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_sync.py b/tests/test_sync.py index b9e2544..a2baf65 100644 --- a/tests/test_sync.py +++ b/tests/test_sync.py @@ -57,7 +57,7 @@ def expected_sync_streams(self): 'list_segment_members': {'id'}, 'list_segments': {'id'}, 'lists': {'id'}, - 'reports_email_activity': {'campaign_id', 'action', 'email_id', 'timestamp'}, + 'reports_email_activity': {'campaign_id', 'action', 'email_id', 'timestamp', '_sdc_stitch_timestamp'}, 'unsubscribes': {'campaign_id', 'email_id'} }