Skip to content

Commit 295c33c

Browse files
committed
fix mind.add_datasource
1 parent 6fd6f83 commit 295c33c

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

minds/minds.py

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,7 @@ def update(
4747
if datasources is not None:
4848
ds_names = []
4949
for ds in datasources:
50-
if isinstance(ds, Datasource):
51-
ds = ds.name
52-
elif isinstance(ds, DatabaseConfig):
53-
# if not exists - create
54-
try:
55-
self.client.datasources.get(ds.name)
56-
except exc.ObjectNotFound:
57-
self.client.datasources.create(ds)
58-
59-
ds = ds.name
60-
elif not isinstance(ds, str):
61-
raise ValueError(f'Unknown type of datasource: {ds}')
50+
ds = self.client.minds._check_datasource(ds)
6251
ds_names.append(ds)
6352
data['datasources'] = ds_names
6453

@@ -79,9 +68,14 @@ def update(
7968
self.name = name
8069

8170
def add_datasource(self, datasource: Datasource):
71+
72+
ds_name = self.client.minds._check_datasource(datasource)
73+
8274
self.api.post(
8375
f'/projects/{self.project}/minds/{self.name}/datasources',
84-
data=datasource.model_dump()
76+
data={
77+
'name': ds_name,
78+
}
8579
)
8680
updated = self.client.minds.get(self.name)
8781

@@ -135,6 +129,21 @@ def get(self, name: str) -> Mind:
135129
item = self.api.get(f'/projects/{self.project}/minds/{name}').json()
136130
return Mind(self.client, **item)
137131

132+
def _check_datasource(self, ds) -> str:
133+
if isinstance(ds, Datasource):
134+
ds = ds.name
135+
elif isinstance(ds, DatabaseConfig):
136+
# if not exists - create
137+
try:
138+
self.client.datasources.get(ds.name)
139+
except exc.ObjectNotFound:
140+
self.client.datasources.create(ds)
141+
142+
ds = ds.name
143+
elif not isinstance(ds, str):
144+
raise ValueError(f'Unknown type of datasource: {ds}')
145+
return ds
146+
138147
def create(
139148
self, name,
140149
model_name=None,
@@ -154,18 +163,8 @@ def create(
154163
ds_names = []
155164
if datasources:
156165
for ds in datasources:
157-
if isinstance(ds, Datasource):
158-
ds = ds.name
159-
elif isinstance(ds, DatabaseConfig):
160-
# if not exists - create
161-
try:
162-
self.client.datasources.get(ds.name)
163-
except exc.ObjectNotFound:
164-
self.client.datasources.create(ds)
165-
166-
ds = ds.name
167-
elif not isinstance(ds, str):
168-
raise ValueError(f'Unknown type of datasource: {ds}')
166+
ds = self._check_datasource(ds)
167+
169168
ds_names.append(ds)
170169

171170
if parameters is None:

0 commit comments

Comments
 (0)