From 89643ba6fa98db82efd3246805ef801a8bfb5c81 Mon Sep 17 00:00:00 2001 From: Jeff Huth Date: Wed, 13 Nov 2019 17:03:56 -0800 Subject: Initial commit Discovery mode works. Still working on normal sync. --- tap_google_sheets/streams.py | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tap_google_sheets/streams.py (limited to 'tap_google_sheets/streams.py') diff --git a/tap_google_sheets/streams.py b/tap_google_sheets/streams.py new file mode 100644 index 0000000..299326a --- /dev/null +++ b/tap_google_sheets/streams.py @@ -0,0 +1,66 @@ +from collections import OrderedDict + +# streams: API URL endpoints to be called +# properties: +# : Plural stream name for the endpoint +# path: API endpoint relative path, when added to the base URL, creates the full path, +# default = stream_name +# key_properties: Primary key fields for identifying an endpoint record. +# replication_method: INCREMENTAL or FULL_TABLE +# replication_keys: bookmark_field(s), typically a date-time, used for filtering the results +# and setting the state +# params: Query, sort, and other endpoint specific parameters; default = {} +# data_key: JSON element containing the results list for the endpoint; default = root (no data_key) +# bookmark_query_field: From date-time field used for filtering the query +# bookmark_type: Data type for bookmark, integer or datetime + +FILE_METADATA = { + "api": "files", + "path": "files/{spreadsheet_id}", + "key_properties": ["id"], + "replication_method": "FULL_TABLE", + "params": { + "fields": "id,name,createdTime,modifiedTime,version,teamDriveId,driveId,lastModifyingUser" + } +} + +SPREADSHEET_METADATA = { + "api": "sheets", + "path": "spreadsheets/{spreadsheet_id}", + "key_properties": ["spreadsheetId"], + "replication_method": "FULL_TABLE", + "params": { + "includeGridData": "false" + } +} + +SHEET_METADATA = { + "api": "sheets", + "path": "spreadsheets/{spreadsheet_id}", + "key_properties": ["sheetId"], + "replication_method": "FULL_TABLE", + "params": { + "includeGridData": "true", + "ranges": "'{sheet_title}'!1:2" + } +} + +SHEETS_LOADED = { + "api": "sheets", + "path": "spreadsheets/{spreadsheet_id}/values/'{sheet_title}'!{range_rows}", + "data_key": "values", + "key_properties": ["spreadsheetId", "sheetId", "loadDate"], + "replication_method": "FULL_TABLE", + "params": { + "dateTimeRenderOption": "SERIAL_NUMBER", + "valueRenderOption": "UNFORMATTED_VALUE", + "majorDimension": "ROWS" + } +} + +# Ensure streams are ordered logically +STREAMS = OrderedDict() +STREAMS['file_metadata'] = FILE_METADATA +STREAMS['spreadsheet_metadata'] = SPREADSHEET_METADATA +STREAMS['sheet_metadata'] = SHEET_METADATA +STREAMS['sheets_loaded'] = SHEETS_LOADED -- cgit v1.2.3