-
-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathapi.py
67 lines (60 loc) · 1.64 KB
/
api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from enum import Enum
from .nocodb import NocoDBProject
class NocoDBAPIUris(Enum):
V1_DB_DATA_PREFIX = "api/v1/db/data"
V1_AUTH_USER_PREFIX = "api/v1/auth/user"
class NocoDBAPI:
def __init__(self, base_uri: str):
self.__base_data_uri = (
f"{base_uri}/{NocoDBAPIUris.V1_DB_DATA_PREFIX.value}"
)
self.__base_auth_uri = (
f"{base_uri}/{NocoDBAPIUris.V1_AUTH_USER_PREFIX.value}"
)
def get_auth_uri(self):
return "/".join(
(
self.__base_auth_uri,
"signin"
)
)
def get_table_uri(self, project: NocoDBProject, table: str) -> str:
return "/".join(
(
self.__base_data_uri,
project.org_name,
project.project_name,
table,
)
)
def get_row_detail_uri(
self, project: NocoDBProject, table: str, row_id: int
):
return "/".join(
(
self.__base_data_uri,
project.org_name,
project.project_name,
table,
str(row_id),
)
)
def get_nested_relations_rows_list_uri(
self,
project: NocoDBProject,
table: str,
relation_type: str,
row_id: int,
column_name: str,
) -> str:
return "/".join(
(
self.__base_data_uri,
project.org_name,
project.project_name,
table,
str(row_id),
relation_type,
column_name,
)
)