Skip to content

Commit 78259d0

Browse files
committed
Update main.py
1 parent dcd59d3 commit 78259d0

File tree

1 file changed

+63
-30
lines changed

1 file changed

+63
-30
lines changed

seatable_api/main.py

Lines changed: 63 additions & 30 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-f]{4}$', value)
51+
4852

4953
class SeaTableAPI(object):
5054
"""SeaTable API
@@ -237,9 +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,
241-
'table_id': table_name,
244+
'table_name': table_name
242245
}
246+
247+
if like_table_id(table_name):
248+
params['table_id'] = table_name
243249
if view_name:
244250
params['view_name'] = view_name
245251
if order_by:
@@ -261,9 +267,11 @@ def get_row(self, table_name, row_id):
261267
"""
262268
url = self._row_server_url() + row_id + '/'
263269
params = {
264-
'table_name': table_name,
265-
'table_id': table_name,
270+
'table_name': table_name
266271
}
272+
273+
if like_table_id(table_name):
274+
params['table_id'] = table_name
267275
response = requests.get(url, params=params, headers=self.headers, timeout=self.timeout)
268276
data = parse_response(response)
269277
return data
@@ -276,9 +284,10 @@ def append_row(self, table_name, row_data):
276284
url = self._row_server_url()
277285
json_data = {
278286
'table_name': table_name,
279-
'table_id': table_name,
280287
'row': row_data,
281288
}
289+
if like_table_id(table_name):
290+
json_data['table_id'] = table_name
282291
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
283292
return parse_response(response)
284293

@@ -290,9 +299,10 @@ def batch_append_rows(self, table_name, rows_data):
290299
url = self._batch_row_server_url()
291300
json_data = {
292301
'table_name': table_name,
293-
'table_id': table_name,
294302
'rows': rows_data,
295303
}
304+
if like_table_id(table_name):
305+
json_data['table_id'] = table_name
296306
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
297307
return parse_response(response)
298308

@@ -305,10 +315,11 @@ def insert_row(self, table_name, row_data, anchor_row_id):
305315
url = self._row_server_url()
306316
json_data = {
307317
'table_name': table_name,
308-
'table_id': table_name,
309318
'row': row_data,
310319
'anchor_row_id': anchor_row_id,
311320
}
321+
if like_table_id(table_name):
322+
json_data['table_id'] = table_name
312323
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
313324
return parse_response(response)
314325

@@ -321,10 +332,11 @@ def update_row(self, table_name, row_id, row_data):
321332
url = self._row_server_url()
322333
json_data = {
323334
'table_name': table_name,
324-
'table_id': table_name,
325335
'row_id': row_id,
326336
'row': row_data,
327337
}
338+
if like_table_id(table_name):
339+
json_data['table_id'] = table_name
328340
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
329341
return parse_response(response)
330342

@@ -337,9 +349,10 @@ def batch_update_rows(self, table_name, rows_data):
337349
url = self._batch_update_row_server_url()
338350
json_data = {
339351
'table_name': table_name,
340-
'table_id': table_name,
341352
'updates': rows_data,
342353
}
354+
if like_table_id(table_name):
355+
json_data['table_id'] = table_name
343356
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
344357
return parse_response(response)
345358

@@ -351,9 +364,10 @@ def delete_row(self, table_name, row_id):
351364
url = self._row_server_url()
352365
json_data = {
353366
'table_name': table_name,
354-
'table_id': table_name,
355367
'row_id': row_id,
356368
}
369+
if like_table_id(table_name):
370+
json_data['table_id'] = table_name
357371
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
358372
return parse_response(response)
359373

@@ -365,9 +379,10 @@ def batch_delete_rows(self, table_name, row_ids):
365379
url = self._batch_delete_row_server_url()
366380
json_data = {
367381
'table_name': table_name,
368-
'table_id': table_name,
369382
'row_ids': row_ids,
370383
}
384+
if like_table_id(table_name):
385+
json_data['table_id'] = table_name
371386
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
372387
return parse_response(response)
373388

@@ -447,12 +462,14 @@ def add_link(self, link_id, table_name, other_table_name, row_id, other_row_id):
447462
json_data = {
448463
'link_id': link_id,
449464
'table_name': table_name,
450-
'table_id': table_name,
451465
'other_table_name': other_table_name,
452-
'other_table_id': other_table_name,
453466
'table_row_id': row_id,
454467
'other_table_row_id': other_row_id,
455468
}
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
456473
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
457474
return parse_response(response)
458475

@@ -468,12 +485,14 @@ def remove_link(self, link_id, table_name, other_table_name, row_id, other_row_i
468485
json_data = {
469486
'link_id': link_id,
470487
'table_name': table_name,
471-
'table_id': table_name,
472488
'other_table_name': other_table_name,
473-
'other_table_id': other_table_name,
474489
'table_row_id': row_id,
475490
'other_table_row_id': other_row_id,
476491
}
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
477496
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
478497
return parse_response(response)
479498

@@ -490,13 +509,15 @@ def update_link(self, link_id, table_name, other_table_name, row_id, other_rows_
490509
url = self._row_link_server_url()
491510
json_data = {
492511
'link_id': link_id,
493-
'table_id': table_name,
494512
'table_name': table_name,
495-
'other_table_id': other_table_name,
496513
'other_table_name': other_table_name,
497514
'row_id': row_id,
498515
'other_rows_ids': other_rows_ids,
499516
}
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
500521
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
501522
return parse_response(response)
502523

@@ -511,13 +532,16 @@ def batch_update_links(self, link_id, table_name, other_table_name, row_id_list,
511532
url = self._batch_update_row_link_server_url()
512533
json_data = {
513534
'link_id': link_id,
514-
'table_id': table_name,
515535
'table_name': table_name,
516-
'other_table_id': other_table_name,
517536
'other_table_name': other_table_name,
537+
518538
'row_id_list': row_id_list,
519539
'other_rows_ids_map': other_rows_ids_map,
520540
}
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
521545

522546
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
523547
return parse_response(response)
@@ -546,8 +570,9 @@ def list_columns(self, table_name, view_name=None):
546570
url = self._column_server_url()
547571
params = {
548572
'table_name': table_name,
549-
'table_id': table_name,
550573
}
574+
if like_table_id(table_name):
575+
params['table_id'] = table_name
551576
if view_name:
552577
params['view_name'] = view_name
553578
response = requests.get(url, params=params, headers=self.headers, timeout=self.timeout)
@@ -575,10 +600,11 @@ def insert_column(self, table_name, column_name, column_type, column_key=None, c
575600
url = self._column_server_url()
576601
json_data = {
577602
'table_name': table_name,
578-
'table_id': table_name,
579603
'column_name': column_name,
580604
'column_type': column_type.value
581605
}
606+
if like_table_id(table_name):
607+
json_data['table_id'] = table_name
582608
if column_key:
583609
json_data['anchor_column'] = column_key
584610
if column_data:
@@ -598,10 +624,11 @@ def rename_column(self, table_name, column_key, new_column_name):
598624
json_data = {
599625
'op_type': RENAME_COLUMN,
600626
'table_name': table_name,
601-
'table_id': table_name,
602627
'column': column_key,
603628
'new_column_name': new_column_name
604629
}
630+
if like_table_id(table_name):
631+
json_data['table_id'] = table_name
605632
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
606633
data = parse_response(response)
607634
return data
@@ -618,10 +645,11 @@ def resize_column(self, table_name, column_key, new_column_width):
618645
json_data = {
619646
'op_type': RESIZE_COLUMN,
620647
'table_name': table_name,
621-
'table_id': table_name,
622648
'column': column_key,
623649
'new_column_width': new_column_width
624650
}
651+
if like_table_id(table_name):
652+
json_data['table_id'] = table_name
625653
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
626654
data = parse_response(response)
627655
return data
@@ -637,10 +665,11 @@ def freeze_column(self, table_name, column_key, frozen):
637665
json_data = {
638666
'op_type': FREEZE_COLUMN,
639667
'table_name': table_name,
640-
'table_id': table_name,
641668
'column': column_key,
642669
'frozen': frozen
643670
}
671+
if like_table_id(table_name):
672+
json_data['table_id'] = table_name
644673
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
645674
data = parse_response(response)
646675
return data
@@ -656,10 +685,11 @@ def move_column(self, table_name, column_key, target_column_key):
656685
json_data = {
657686
'op_type': MOVE_COLUMN,
658687
'table_name': table_name,
659-
'table_id': table_name,
660688
'column': column_key,
661689
'target_column': target_column_key
662690
}
691+
if like_table_id(table_name):
692+
json_data['table_id'] = table_name
663693
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
664694
data = parse_response(response)
665695
return data
@@ -677,10 +707,11 @@ def modify_column_type(self, table_name, column_key, new_column_type):
677707
json_data = {
678708
'op_type': MODIFY_COLUMN_TYPE,
679709
'table_name': table_name,
680-
'table_id': table_name,
681710
'column': column_key,
682711
'new_column_type': new_column_type.value
683712
}
713+
if like_table_id(table_name):
714+
json_data['table_id'] = table_name
684715
response = requests.put(url, json=json_data, headers=self.headers, timeout=self.timeout)
685716
data = parse_response(response)
686717
return data
@@ -694,10 +725,11 @@ def add_column_options(self, table_name, column, options):
694725
url = self._column_options_server_url()
695726
json_data = {
696727
"table_name": table_name,
697-
'table_id': table_name,
698728
"column": column,
699729
"options": options
700730
}
731+
if like_table_id(table_name):
732+
json_data['table_id'] = table_name
701733
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
702734
data = parse_response(response)
703735
return data
@@ -714,12 +746,12 @@ def add_column_cascade_settings(self, table_name, child_column, parent_column, c
714746
url = self._column_cascade_setting_server_url()
715747
json_data = {
716748
"table_name": table_name,
717-
'table_id': table_name,
718749
"child_column": child_column,
719750
"parent_column": parent_column,
720751
"cascade_settings": cascade_settings
721752
}
722-
753+
if like_table_id(table_name):
754+
json_data['table_id'] = table_name
723755
response = requests.post(url, json=json_data, headers=self.headers, timeout=self.timeout)
724756
data = parse_response(response)
725757
return data
@@ -733,9 +765,10 @@ def delete_column(self, table_name, column_key):
733765
url = self._column_server_url()
734766
json_data = {
735767
'table_name': table_name,
736-
'table_id': table_name,
737768
'column': column_key
738769
}
770+
if like_table_id(table_name):
771+
json_data['table_id'] = table_name
739772
response = requests.delete(url, json=json_data, headers=self.headers, timeout=self.timeout)
740773
data = parse_response(response)
741774
return data

0 commit comments

Comments
 (0)