@@ -305,22 +305,20 @@ class DetailEndpoint(object):
305305 traditional endpoints are handled with this class.
306306 '''
307307
308- def __init__ (self , name , parent_obj = None ):
309- self .token = parent_obj .api_kwargs .get ('token' )
310- self .version = parent_obj .api_kwargs .get ('version' )
311- self .session_key = parent_obj .api_kwargs .get ('session_key' )
312- self .ssl_verify = parent_obj .api_kwargs .get ('ssl_verify' )
308+ def __init__ (self , parent_obj , name , custom_return = None ):
309+ self .parent_obj = parent_obj
310+ self .custom_return = custom_return
313311 self .url = "{}/{}/{}/" .format (
314312 parent_obj .endpoint_meta .get ('url' ),
315313 parent_obj .id ,
316314 name
317315 )
318316 self .request_kwargs = dict (
319317 base = self .url ,
320- token = self . token ,
321- session_key = self . session_key ,
322- version = self . version ,
323- ssl_verify = self . ssl_verify ,
318+ token = parent_obj . api_kwargs . get ( ' token' ) ,
319+ session_key = parent_obj . api_kwargs . get ( ' session_key' ) ,
320+ version = parent_obj . api_kwargs . get ( ' version' ) ,
321+ ssl_verify = parent_obj . api_kwargs . get ( ' ssl_verify' ) ,
324322 )
325323
326324 def list (self , ** kwargs ):
@@ -333,16 +331,32 @@ def list(self, **kwargs):
333331 E.g. ``.list(method='get_facts')`` would be converted to
334332 ``.../?method=get_facts``.
335333
336- :returns: A dictionary or list of dictionaries its retrieved
337- from NetBox.
334+ :returns: A dictionary or list of dictionaries retrieved from
335+ NetBox.
338336 """
339337 if kwargs :
340338 self .request_kwargs ['base' ] = '{}{}' .format (
341339 self .url ,
342340 url_param_builder (kwargs )
343341 )
344-
345- return Request (** self .request_kwargs ).get ()
342+ req = Request (** self .request_kwargs ).get ()
343+
344+ if self .custom_return :
345+ if isinstance (req , list ):
346+ return [
347+ self .custom_return (
348+ i ,
349+ api_kwargs = self .parent_obj .api_kwargs ,
350+ endpoint_meta = self .parent_obj .endpoint_meta
351+ )
352+ for i in req
353+ ]
354+ return self .custom_return (
355+ req ,
356+ api_kwargs = self .parent_obj .api_kwargs ,
357+ endpoint_meta = self .parent_obj .endpoint_meta
358+ )
359+ return req
346360
347361 def create (self , data = {}):
348362 """The write operation for a detail endpoint.
0 commit comments