Skip to content

Commit a53bb0e

Browse files
authored
feat: Add override_columns to openapi transformer (#22)
1 parent 9936ced commit a53bb0e

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

cloudquery/sdk/transformers/openapi.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Dict, List
1+
from typing import Dict, List, Optional
22
import pyarrow as pa
33
from cloudquery.sdk.types import JSONType
44
from cloudquery.sdk.schema import Column
@@ -24,11 +24,24 @@ def oapi_type_to_arrow_type(field) -> pa.DataType:
2424
return pa.string()
2525

2626

27-
def oapi_definition_to_columns(definition: Dict) -> List[Column]:
27+
def get_column_by_name(columns: List[Column], name: str) -> Optional[Column]:
28+
for column in columns:
29+
if column.name == name:
30+
return column
31+
return None
32+
33+
34+
def oapi_definition_to_columns(definition: Dict, override_columns=[]) -> List[Column]:
2835
columns = []
2936
for key, value in definition["properties"].items():
3037
column_type = oapi_type_to_arrow_type(value)
31-
columns.append(
32-
Column(name=key, type=column_type, description=value.get("description"))
38+
column = Column(
39+
name=key, type=column_type, description=value.get("description")
3340
)
41+
override_column = get_column_by_name(override_columns, key)
42+
if override_column is not None:
43+
column.type = override_column.type
44+
column.primary_key = override_column.primary_key
45+
column.unique = override_column.unique
46+
columns.append(column)
3447
return columns

0 commit comments

Comments
 (0)