JSON Home data is required

For the initial implementation, the JSON Home data was optional. Now
that JSON Home is implemented, JSON Home data is required.

bp json-home

Change-Id: I5af70401fba892166cd107264e9d5eafe6bcbd03
This commit is contained in:
Brant Knudson 2014-08-28 19:36:29 -05:00
parent f1f42698af
commit 3a71d9510b
2 changed files with 26 additions and 34 deletions

View File

@ -59,29 +59,22 @@ class Router(wsgi.ComposableRouter):
action='delete_%s' % self.key,
conditions=dict(method=['DELETE']))
if self._resource_descriptions is not None:
# Add the collection resource and entity resource to the resource
# descriptions.
# Add the collection resource and entity resource to the resource
# descriptions.
collection_rel = json_home.build_v3_resource_relation(
self.collection_key)
self._resource_descriptions.append(
(collection_rel,
{
'href': collection_path,
}
))
collection_rel = json_home.build_v3_resource_relation(
self.collection_key)
rel_data = {'href': collection_path, }
self._resource_descriptions.append((collection_rel, rel_data))
if self._is_entity_implemented:
entity_rel = json_home.build_v3_resource_relation(self.key)
id_str = '%s_id' % self.key
id_param_rel = json_home.build_v3_parameter_relation(id_str)
self._resource_descriptions.append(
(entity_rel,
{
'href-template': entity_path,
'href-vars': {
id_str: id_param_rel,
},
}
))
if self._is_entity_implemented:
entity_rel = json_home.build_v3_resource_relation(self.key)
id_str = '%s_id' % self.key
id_param_rel = json_home.build_v3_parameter_relation(id_str)
entity_rel_data = {
'href-template': entity_path,
'href-vars': {
id_str: id_param_rel,
},
}
self._resource_descriptions.append((entity_rel, entity_rel_data))

View File

@ -630,10 +630,10 @@ class RoutersBase(object):
Use self._add_resource() to map routes for a resource.
"""
def _add_resource(self, mapper, controller, path,
def _add_resource(self, mapper, controller, path, rel,
get_action=None, head_action=None, get_head_action=None,
put_action=None, post_action=None, patch_action=None,
delete_action=None, get_post_action=None, rel=None,
delete_action=None, get_post_action=None,
path_vars=None):
if get_head_action:
mapper.connect(path, controller=controller, action=get_head_action,
@ -660,16 +660,15 @@ class RoutersBase(object):
mapper.connect(path, controller=controller, action=get_post_action,
conditions=dict(method=['GET', 'POST']))
if rel:
resource_data = dict()
resource_data = dict()
if path_vars:
resource_data['href-template'] = path
resource_data['href-vars'] = path_vars
else:
resource_data['href'] = path
if path_vars:
resource_data['href-template'] = path
resource_data['href-vars'] = path_vars
else:
resource_data['href'] = path
self.v3_resources.append((rel, resource_data))
self.v3_resources.append((rel, resource_data))
class V3ExtensionRouter(ExtensionRouter, RoutersBase):