diff options
Diffstat (limited to 'tap_google_sheets/schema.py')
-rw-r--r-- | tap_google_sheets/schema.py | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/tap_google_sheets/schema.py b/tap_google_sheets/schema.py index fcaccf9..56d2fb9 100644 --- a/tap_google_sheets/schema.py +++ b/tap_google_sheets/schema.py | |||
@@ -224,16 +224,13 @@ def get_sheet_metadata(sheet, spreadsheet_id, client): | |||
224 | 224 | ||
225 | stream_name = 'sheet_metadata' | 225 | stream_name = 'sheet_metadata' |
226 | stream_metadata = STREAMS.get(stream_name) | 226 | stream_metadata = STREAMS.get(stream_name) |
227 | api = stream_metadata.get('api', 'sheets') | ||
228 | params = stream_metadata.get('params', {}) | 227 | params = stream_metadata.get('params', {}) |
229 | sheet_title_encoded = urllib.parse.quote_plus(sheet_title) | 228 | |
230 | sheet_title_escaped = re.escape(sheet_title) | 229 | # GET sheet_metadata |
231 | querystring = '&'.join(['%s=%s' % (key, value) for (key, value) in \ | 230 | sheet_md_results = client.request(endpoint=stream_name, |
232 | params.items()]).replace('{sheet_title}', sheet_title_encoded) | 231 | spreadsheet_id=spreadsheet_id, |
233 | path = '{}?{}'.format(stream_metadata.get('path').replace('{spreadsheet_id}', \ | 232 | sheet_title=sheet_title, |
234 | spreadsheet_id), querystring) | 233 | params=params) |
235 | |||
236 | sheet_md_results = client.get(path=path, api=api, endpoint=sheet_title_escaped) | ||
237 | # sheet_metadata: 1st `sheets` node in results | 234 | # sheet_metadata: 1st `sheets` node in results |
238 | sheet_metadata = sheet_md_results.get('sheets')[0] | 235 | sheet_metadata = sheet_md_results.get('sheets')[0] |
239 | 236 | ||
@@ -275,15 +272,12 @@ def get_schemas(client, spreadsheet_id): | |||
275 | field_metadata[stream_name] = mdata | 272 | field_metadata[stream_name] = mdata |
276 | 273 | ||
277 | if stream_name == 'spreadsheet_metadata': | 274 | if stream_name == 'spreadsheet_metadata': |
278 | api = stream_metadata.get('api', 'sheets') | ||
279 | params = stream_metadata.get('params', {}) | 275 | params = stream_metadata.get('params', {}) |
280 | querystring = '&'.join(['%s=%s' % (key, value) for (key, value) in params.items()]) | ||
281 | path = '{}?{}'.format(stream_metadata.get('path').replace('{spreadsheet_id}', \ | ||
282 | spreadsheet_id), querystring) | ||
283 | 276 | ||
284 | # GET spreadsheet_metadata, which incl. sheets (basic metadata for each worksheet) | 277 | # GET spreadsheet_metadata, which incl. sheets (basic metadata for each worksheet) |
285 | spreadsheet_md_results = client.get(path=path, params=querystring, api=api, \ | 278 | spreadsheet_md_results = client.request(endpoint=stream_name, |
286 | endpoint=stream_name) | 279 | spreadsheet_id=spreadsheet_id, |
280 | params=params) | ||
287 | 281 | ||
288 | sheets = spreadsheet_md_results.get('sheets') | 282 | sheets = spreadsheet_md_results.get('sheets') |
289 | if sheets: | 283 | if sheets: |