Added parameter support to Resource.find()
This makes the overrides in subclasses unnecessary
This commit is contained in:
@@ -16,24 +16,6 @@ class Node(List, Find, Create, Post, Update, Delete, Replace):
|
||||
"""
|
||||
path = "nodes"
|
||||
|
||||
@classmethod
|
||||
def find(cls, resource_id, params=None, api=None):
|
||||
"""Locate resource, usually using ObjectID
|
||||
|
||||
Usage::
|
||||
|
||||
>>> Node.find("507f1f77bcf86cd799439011")
|
||||
"""
|
||||
|
||||
api = api or Api.Default()
|
||||
|
||||
url = utils.join_url(cls.path, str(resource_id))
|
||||
if params:
|
||||
url = utils.join_url_params(url, params)
|
||||
|
||||
item = utils.convert_datetime(api.get(url))
|
||||
return cls(item)
|
||||
|
||||
@classmethod
|
||||
def find_one(cls, params, api=None):
|
||||
"""Get one resource starting from parameters different than the resource
|
||||
|
||||
@@ -17,24 +17,6 @@ class Project(List, Find, Create, Post, Update, Delete, Replace):
|
||||
"""
|
||||
path = "projects"
|
||||
|
||||
@classmethod
|
||||
def find(cls, resource_id, params=None, api=None):
|
||||
"""Locate resource, usually using ObjectID
|
||||
|
||||
Usage::
|
||||
|
||||
>>> Project.find("507f1f77bcf86cd799439011")
|
||||
"""
|
||||
|
||||
api = api or Api.Default()
|
||||
|
||||
url = utils.join_url(cls.path, str(resource_id))
|
||||
if params:
|
||||
url = utils.join_url_params(url, params)
|
||||
|
||||
item = utils.convert_datetime(api.get(url))
|
||||
return cls(item)
|
||||
|
||||
@classmethod
|
||||
def find_one(cls, params, api=None):
|
||||
"""Get one resource starting from parameters different than the resource
|
||||
|
||||
@@ -108,7 +108,7 @@ class Resource(object):
|
||||
class Find(Resource):
|
||||
|
||||
@classmethod
|
||||
def find(cls, resource_id, api=None):
|
||||
def find(cls, resource_id, params=None, api=None):
|
||||
"""Locate resource, usually using ObjectID
|
||||
|
||||
Usage::
|
||||
@@ -119,6 +119,9 @@ class Find(Resource):
|
||||
api = api or Api.Default()
|
||||
|
||||
url = utils.join_url(cls.path, str(resource_id))
|
||||
if params:
|
||||
url = utils.join_url_params(url, params)
|
||||
|
||||
item = utils.convert_datetime(api.get(url))
|
||||
return cls(item)
|
||||
|
||||
@@ -194,7 +197,7 @@ class List(Resource):
|
||||
for item in response['_items']:
|
||||
item = utils.convert_datetime(item)
|
||||
return cls.list_class(response)
|
||||
except AttributeError:
|
||||
except AttributeError: # FIXME: handle list responses properly, rather than relying on this exception.
|
||||
# To handle the case when response is JSON Array
|
||||
if isinstance(response, list):
|
||||
new_resp = [cls.list_class(elem) for elem in response]
|
||||
|
||||
Reference in New Issue
Block a user