19
19
RESERVED_KWARGS = ("id" , "pk" , "limit" , "offset" )
20
20
21
21
22
+ def response_loader (req , return_obj , endpoint ):
23
+ if isinstance (req , list ):
24
+ return [
25
+ return_obj (i , endpoint .api , endpoint )
26
+ for i in req
27
+ ]
28
+ return return_obj (req , endpoint .api , endpoint )
29
+
30
+
22
31
class Endpoint (object ):
23
32
"""Represent actions available on endpoints in the Netbox API.
24
33
@@ -73,9 +82,6 @@ def _lookup_ret_obj(self, name, model):
73
82
ret = Record
74
83
return ret
75
84
76
- def _response_loader (self , values ):
77
- return self .return_obj (values , self .api , self )
78
-
79
85
def all (self ):
80
86
"""Queries the 'ListView' of a given endpoint.
81
87
@@ -97,7 +103,7 @@ def all(self):
97
103
threading = self .api .threading ,
98
104
)
99
105
100
- return [ self . _response_loader ( i ) for i in req .get ()]
106
+ return response_loader ( req .get (), self . return_obj , self )
101
107
102
108
def get (self , * args , ** kwargs ):
103
109
r"""Queries the DetailsView of a given endpoint.
@@ -157,7 +163,7 @@ def get(self, *args, **kwargs):
157
163
except RequestError :
158
164
return None
159
165
160
- return self . _response_loader (req .get ())
166
+ return response_loader (req .get (), self . return_obj , self )
161
167
162
168
def filter (self , * args , ** kwargs ):
163
169
r"""Queries the 'ListView' of a given endpoint.
@@ -223,8 +229,7 @@ def filter(self, *args, **kwargs):
223
229
threading = self .api .threading ,
224
230
)
225
231
226
- ret = [self ._response_loader (i ) for i in req .get ()]
227
- return ret
232
+ return response_loader (req .get (), self .return_obj , self )
228
233
229
234
def create (self , * args , ** kwargs ):
230
235
r"""Creates an object on an endpoint.
@@ -284,10 +289,7 @@ def create(self, *args, **kwargs):
284
289
http_session = self .api .http_session ,
285
290
).post (args [0 ] if args else kwargs )
286
291
287
- if isinstance (req , list ):
288
- return [self ._response_loader (i ) for i in req ]
289
-
290
- return self ._response_loader (req )
292
+ return response_loader (req , self .return_obj , self )
291
293
292
294
def choices (self ):
293
295
""" Returns all choices from the endpoint.
@@ -429,16 +431,7 @@ def list(self, **kwargs):
429
431
req = Request (** self .request_kwargs ).get (add_params = kwargs )
430
432
431
433
if self .custom_return :
432
- if isinstance (req , list ):
433
- return [
434
- self .custom_return (
435
- i , self .parent_obj .api , self .parent_obj .endpoint
436
- )
437
- for i in req
438
- ]
439
- return self .custom_return (
440
- req , self .parent_obj .api , self .parent_obj .endpoint
441
- )
434
+ return response_loader (req , self .custom_return , self .parent_obj .endpoint )
442
435
return req
443
436
444
437
def create (self , data = None ):
0 commit comments