Skip to content

Commit b5e93e2

Browse files
use flatten
1 parent 6147fa6 commit b5e93e2

File tree

1 file changed

+22
-42
lines changed

1 file changed

+22
-42
lines changed

linode_api4/groups/database.py

Lines changed: 22 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
from linode_api4.errors import UnexpectedResponseError
22
from linode_api4.groups import Group
33
from linode_api4.objects import (
4-
Base,
54
Database,
65
DatabaseEngine,
76
DatabaseType,
87
MySQLDatabase,
98
PostgreSQLDatabase,
9+
drop_null_keys,
1010
)
11-
11+
from linode_api4.objects.base import _flatten_request_body_recursive
1212

1313
class DatabaseGroup(Group):
1414
"""
@@ -126,13 +126,16 @@ def mysql_create(self, label, region, engine, ltype, **kwargs):
126126

127127
params = {
128128
"label": label,
129-
"region": region.id if issubclass(type(region), Base) else region,
130-
"engine": engine.id if issubclass(type(engine), Base) else engine,
131-
"type": ltype.id if issubclass(type(ltype), Base) else ltype,
129+
"region": region,
130+
"engine": engine,
131+
"type": ltype,
132132
}
133133
params.update(kwargs)
134134

135-
result = self.client.post("/databases/mysql/instances", data=params)
135+
result = self.client.post(
136+
"/databases/mysql/instances",
137+
data=_flatten_request_body_recursive(drop_null_keys(params))
138+
)
136139

137140
if "id" not in result:
138141
raise UnexpectedResponseError(
@@ -180,25 +183,14 @@ def mysql_fork(self, source, restore_time, **kwargs):
180183
"restore_time": restore_time.strftime("%Y-%m-%dT%H:%M:%S"),
181184
}
182185
}
183-
if "region" in kwargs:
184-
region = kwargs["region"]
185-
params["region"] = (
186-
region.id if issubclass(type(region), Base) else region,
187-
)
188-
if "engine" in kwargs:
189-
engine = kwargs["engine"]
190-
params["engine"] = (
191-
engine.id if issubclass(type(engine), Base) else engine,
192-
)
193186
if "ltype" in kwargs:
194-
ltype = kwargs["ltype"]
195-
params["type"] = (
196-
ltype.id if issubclass(type(ltype), Base) else ltype,
197-
)
198-
187+
params["type"] = kwargs["ltype"]
199188
params.update(kwargs)
200189

201-
result = self.client.post("/databases/mysql/instances", data=params)
190+
result = self.client.post(
191+
"/databases/mysql/instances",
192+
data=_flatten_request_body_recursive(drop_null_keys(params))
193+
)
202194

203195
if "id" not in result:
204196
raise UnexpectedResponseError(
@@ -257,14 +249,15 @@ def postgresql_create(self, label, region, engine, ltype, **kwargs):
257249

258250
params = {
259251
"label": label,
260-
"region": region.id if issubclass(type(region), Base) else region,
261-
"engine": engine.id if issubclass(type(engine), Base) else engine,
262-
"type": ltype.id if issubclass(type(ltype), Base) else ltype,
252+
"region": region,
253+
"engine": engine,
254+
"type": ltype,
263255
}
264256
params.update(kwargs)
265257

266258
result = self.client.post(
267-
"/databases/postgresql/instances", data=params
259+
"/databases/postgresql/instances",
260+
data=_flatten_request_body_recursive(drop_null_keys(params))
268261
)
269262

270263
if "id" not in result:
@@ -314,26 +307,13 @@ def postgresql_fork(self, source, restore_time, **kwargs):
314307
"restore_time": restore_time.strftime("%Y-%m-%dT%H:%M:%S"),
315308
}
316309
}
317-
if "region" in kwargs:
318-
region = kwargs["region"]
319-
params["region"] = (
320-
region.id if issubclass(type(region), Base) else region,
321-
)
322-
if "engine" in kwargs:
323-
engine = kwargs["engine"]
324-
params["engine"] = (
325-
engine.id if issubclass(type(engine), Base) else engine,
326-
)
327310
if "ltype" in kwargs:
328-
ltype = kwargs["ltype"]
329-
params["ltype"] = (
330-
ltype.id if issubclass(type(ltype), Base) else ltype,
331-
)
332-
311+
params["type"] = kwargs["ltype"]
333312
params.update(kwargs)
334313

335314
result = self.client.post(
336-
"/databases/postgresql/instances", data=params
315+
"/databases/postgresql/instances",
316+
data=_flatten_request_body_recursive(drop_null_keys(params))
337317
)
338318

339319
if "id" not in result:

0 commit comments

Comments
 (0)