diff --git a/tap_sailthru/schemas/blast_stats.json b/tap_sailthru/schemas/blast_stats.json index a2a9778..5f0a7a5 100644 --- a/tap_sailthru/schemas/blast_stats.json +++ b/tap_sailthru/schemas/blast_stats.json @@ -70,6 +70,66 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, + "optout": { + "type": [ + "integer", + "null" + ] + }, + "spam": { + "type": [ + "integer", + "null" + ] + }, + "hardbounce": { + "type": [ + "integer", + "null" + ] + }, + "softbounce": { + "type": [ + "integer", + "null" + ] + }, + "view": { + "type": [ + "integer", + "null" + ] + }, "confirmed_opens": { "type": [ "integer", @@ -419,6 +479,18 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, + "spam": { + "type": [ + "integer", + "null" + ] + }, "hardbounce": { "type": [ "integer", @@ -578,6 +650,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -638,6 +716,36 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -742,6 +850,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -802,6 +916,36 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -906,6 +1050,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -966,6 +1116,36 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -1070,6 +1250,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -1130,6 +1316,36 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -1234,6 +1450,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -1294,6 +1516,36 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -1398,6 +1650,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -1458,6 +1716,36 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -1562,6 +1850,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -1622,6 +1916,36 @@ "null" ] }, + "rev": { + "type": [ + "integer", + "null" + ] + }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -1727,6 +2051,24 @@ "null" ] }, + "hardbounce": { + "type": [ + "integer", + "null" + ] + }, + "softbounce": { + "type": [ + "integer", + "null" + ] + }, + "view": { + "type": [ + "integer", + "null" + ] + }, "name": { "type": [ "string", @@ -1879,6 +2221,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -1939,6 +2287,36 @@ "null" ] }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, + "rev": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", @@ -2129,6 +2507,12 @@ "null" ] }, + "optout": { + "type": [ + "integer", + "null" + ] + }, "spam": { "type": [ "integer", @@ -2183,6 +2567,36 @@ "null" ] }, + "purchase": { + "type": [ + "integer", + "null" + ] + }, + "purchase_first": { + "type": [ + "integer", + "null" + ] + }, + "purchase_second": { + "type": [ + "integer", + "null" + ] + }, + "purchase_price": { + "type": [ + "integer", + "null" + ] + }, + "rev": { + "type": [ + "integer", + "null" + ] + }, "click": { "type": [ "integer", diff --git a/tap_sailthru/streams.py b/tap_sailthru/streams.py index a535023..47d26d7 100644 --- a/tap_sailthru/streams.py +++ b/tap_sailthru/streams.py @@ -205,6 +205,8 @@ class BlastStatsStream(SailthruStream): schema_filepath = SCHEMAS_DIR / "blast_stats.json" parent_stream_type = BlastStream rest_method = "GET" + # we set ignore_parent_replication_key = True here since we'd want the latest stats for each blast. the tradeoff is that the ingestion takes longer. + ignore_parent_replication_key = True def get_url(self, context: Optional[dict]) -> str: """Construct url for api request.