Skip to content

Commit 586c636

Browse files
authored
Merge pull request #72 from seatable/support-table-id-params
update
2 parents ae69f01 + f38a184 commit 586c636

File tree

1 file changed

+69
-9
lines changed

1 file changed

+69
-9
lines changed

seatable_api/main.py

Lines changed: 69 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import io
22
import json
3+
import re
34
from datetime import datetime, timedelta
45
from urllib import parse
56
from uuid import UUID
@@ -45,6 +46,9 @@ def parse_response(response):
4546
except:
4647
pass
4748

49+
def like_table_id(value):
50+
return re.match(r'^[-0-9a-zA-Z]{4}$', value)
51+
4852

4953
class SeaTableAPI(object):
5054
"""SeaTable API
@@ -237,8 +241,11 @@ def list_rows(self, table_name, view_name=None, order_by=None, desc=False, start
237241
"""
238242
url = self._row_server_url()
239243
params = {
240-
'table_name': table_name,
244+
'table_name': table_name
241245
}
246+
247+
if like_table_id(table_name):
248+
params['table_id'] = table_name
242249
if view_name:
243250
params['view_name'] = view_name
244251
if order_by:
@@ -260,8 +267,11 @@ def get_row(self, table_name, row_id):
260267
"""
261268
url = self._row_server_url() + row_id + '/'
262269
params = {
263-
'table_name': table_name,
270+
'table_name': table_name
264271
}
272+
273+
if like_table_id(table_name):
274+
params['table_id'] = table_name
265275
response = requests.get(url, params=params, headers=self.headers, timeout=self.timeout)
266276
data = parse_response(response)
267277
return data
@@ -276,6 +286,8 @@ def append_row(self, table_name, row_data):
276286
'table_name': table_name,
277287
'row': row_data,
278288
}
289+
if like_table_id(table_name):
290+
json_data['table_id'] = table_name
279291
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
280292
return parse_response(response)
281293

@@ -289,6 +301,8 @@ def batch_append_rows(self, table_name, rows_data):
289301
'table_name': table_name,
290302
'rows': rows_data,
291303
}
304+
if like_table_id(table_name):
305+
json_data['table_id'] = table_name
292306
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
293307
return parse_response(response)
294308

@@ -304,6 +318,8 @@ def insert_row(self, table_name, row_data, anchor_row_id):
304318
'row': row_data,
305319
'anchor_row_id': anchor_row_id,
306320
}
321+
if like_table_id(table_name):
322+
json_data['table_id'] = table_name
307323
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
308324
return parse_response(response)
309325

@@ -319,6 +335,8 @@ def update_row(self, table_name, row_id, row_data):
319335
'row_id': row_id,
320336
'row': row_data,
321337
}
338+
if like_table_id(table_name):
339+
json_data['table_id'] = table_name
322340
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
323341
return parse_response(response)
324342

@@ -333,6 +351,8 @@ def batch_update_rows(self, table_name, rows_data):
333351
'table_name': table_name,
334352
'updates': rows_data,
335353
}
354+
if like_table_id(table_name):
355+
json_data['table_id'] = table_name
336356
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
337357
return parse_response(response)
338358

@@ -346,6 +366,8 @@ def delete_row(self, table_name, row_id):
346366
'table_name': table_name,
347367
'row_id': row_id,
348368
}
369+
if like_table_id(table_name):
370+
json_data['table_id'] = table_name
349371
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
350372
return parse_response(response)
351373

@@ -359,6 +381,8 @@ def batch_delete_rows(self, table_name, row_ids):
359381
'table_name': table_name,
360382
'row_ids': row_ids,
361383
}
384+
if like_table_id(table_name):
385+
json_data['table_id'] = table_name
362386
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
363387
return parse_response(response)
364388

@@ -442,6 +466,10 @@ def add_link(self, link_id, table_name, other_table_name, row_id, other_row_id):
442466
'table_row_id': row_id,
443467
'other_table_row_id': other_row_id,
444468
}
469+
if like_table_id(table_name):
470+
json_data['table_id'] = table_name
471+
if like_table_id(other_table_name):
472+
json_data['other_table_id'] = other_table_name
445473
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
446474
return parse_response(response)
447475

@@ -461,10 +489,14 @@ def remove_link(self, link_id, table_name, other_table_name, row_id, other_row_i
461489
'table_row_id': row_id,
462490
'other_table_row_id': other_row_id,
463491
}
492+
if like_table_id(table_name):
493+
json_data['table_id'] = table_name
494+
if like_table_id(other_table_name):
495+
json_data['other_table_id'] = other_table_name
464496
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
465497
return parse_response(response)
466498

467-
def update_link(self, link_id, table_id, other_table_id, row_id, other_rows_ids):
499+
def update_link(self, link_id, table_name, other_table_name, row_id, other_rows_ids):
468500
"""
469501
:param link_id: str
470502
:param table_id: str
@@ -477,15 +509,19 @@ def update_link(self, link_id, table_id, other_table_id, row_id, other_rows_ids)
477509
url = self._row_link_server_url()
478510
json_data = {
479511
'link_id': link_id,
480-
'table_id': table_id,
481-
'other_table_id': other_table_id,
512+
'table_name': table_name,
513+
'other_table_name': other_table_name,
482514
'row_id': row_id,
483515
'other_rows_ids': other_rows_ids,
484516
}
517+
if like_table_id(table_name):
518+
json_data['table_id'] = table_name
519+
if like_table_id(other_table_name):
520+
json_data['other_table_id'] = other_table_name
485521
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
486522
return parse_response(response)
487523

488-
def batch_update_links(self, link_id, table_id, other_table_id, row_id_list, other_rows_ids_map):
524+
def batch_update_links(self, link_id, table_name, other_table_name, row_id_list, other_rows_ids_map):
489525
"""
490526
:param link_id: str
491527
:param table_id: str
@@ -496,11 +532,16 @@ def batch_update_links(self, link_id, table_id, other_table_id, row_id_list, oth
496532
url = self._batch_update_row_link_server_url()
497533
json_data = {
498534
'link_id': link_id,
499-
'table_id': table_id,
500-
'other_table_id': other_table_id,
535+
'table_name': table_name,
536+
'other_table_name': other_table_name,
537+
501538
'row_id_list': row_id_list,
502539
'other_rows_ids_map': other_rows_ids_map,
503540
}
541+
if like_table_id(table_name):
542+
json_data['table_id'] = table_name
543+
if like_table_id(other_table_name):
544+
json_data['other_table_id'] = other_table_name
504545

505546
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
506547
return parse_response(response)
@@ -530,6 +571,8 @@ def list_columns(self, table_name, view_name=None):
530571
params = {
531572
'table_name': table_name,
532573
}
574+
if like_table_id(table_name):
575+
params['table_id'] = table_name
533576
if view_name:
534577
params['view_name'] = view_name
535578
response = requests.get(url, params=params, headers=self.headers, timeout=self.timeout)
@@ -560,6 +603,8 @@ def insert_column(self, table_name, column_name, column_type, column_key=None, c
560603
'column_name': column_name,
561604
'column_type': column_type.value
562605
}
606+
if like_table_id(table_name):
607+
json_data['table_id'] = table_name
563608
if column_key:
564609
json_data['anchor_column'] = column_key
565610
if column_data:
@@ -582,6 +627,8 @@ def rename_column(self, table_name, column_key, new_column_name):
582627
'column': column_key,
583628
'new_column_name': new_column_name
584629
}
630+
if like_table_id(table_name):
631+
json_data['table_id'] = table_name
585632
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
586633
data = parse_response(response)
587634
return data
@@ -601,6 +648,8 @@ def resize_column(self, table_name, column_key, new_column_width):
601648
'column': column_key,
602649
'new_column_width': new_column_width
603650
}
651+
if like_table_id(table_name):
652+
json_data['table_id'] = table_name
604653
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
605654
data = parse_response(response)
606655
return data
@@ -619,6 +668,8 @@ def freeze_column(self, table_name, column_key, frozen):
619668
'column': column_key,
620669
'frozen': frozen
621670
}
671+
if like_table_id(table_name):
672+
json_data['table_id'] = table_name
622673
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
623674
data = parse_response(response)
624675
return data
@@ -637,6 +688,8 @@ def move_column(self, table_name, column_key, target_column_key):
637688
'column': column_key,
638689
'target_column': target_column_key
639690
}
691+
if like_table_id(table_name):
692+
json_data['table_id'] = table_name
640693
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
641694
data = parse_response(response)
642695
return data
@@ -657,6 +710,8 @@ def modify_column_type(self, table_name, column_key, new_column_type):
657710
'column': column_key,
658711
'new_column_type': new_column_type.value
659712
}
713+
if like_table_id(table_name):
714+
json_data['table_id'] = table_name
660715
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
661716
data = parse_response(response)
662717
return data
@@ -673,6 +728,8 @@ def add_column_options(self, table_name, column, options):
673728
"column": column,
674729
"options": options
675730
}
731+
if like_table_id(table_name):
732+
json_data['table_id'] = table_name
676733
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
677734
data = parse_response(response)
678735
return data
@@ -693,7 +750,8 @@ def add_column_cascade_settings(self, table_name, child_column, parent_column, c
693750
"parent_column": parent_column,
694751
"cascade_settings": cascade_settings
695752
}
696-
753+
if like_table_id(table_name):
754+
json_data['table_id'] = table_name
697755
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
698756
data = parse_response(response)
699757
return data
@@ -709,6 +767,8 @@ def delete_column(self, table_name, column_key):
709767
'table_name': table_name,
710768
'column': column_key
711769
}
770+
if like_table_id(table_name):
771+
json_data['table_id'] = table_name
712772
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
713773
data = parse_response(response)
714774
return data

0 commit comments

Comments
 (0)