Example #1
0
def get_registry_urls(registry):
    urlpatterns = patterns('')
    
    for model, resource in six.iteritems(registry):
        name = model_name_urlize(model)
        name_plural = model_name_urlize(model, plural=True)
        list_view, detail_view = resource
        for endpoint in getattr(detail_view, 'ctl', []):
            urlpatterns += patterns('',
                url(r'^%s/(?P<pk>[0-9]+)/ctl/%s/$' % (name_plural, endpoint.url_name),
                    endpoint.as_view(),
                    name="%s-ctl-%s" % (name, endpoint.url_name)),
            )
        urlpatterns += patterns('',
            url(r'^%s/$' % name_plural,
                list_view.as_view(),
                name=name if is_singleton(model) else '%s-list' % name),
            url(r'^%s/(?P<pk>[0-9]+)$' % name_plural,
                detail_view.as_view(),
                name="%s-detail" % name),
        )
    
    # backwards compatibility rel links #236
    from nodes.api import ServerDefaultDetail
    urlpatterns += patterns('',
        url(r'^server/$',
            ServerDefaultDetail.as_view(),
            name="server"),
    )
    
    return urlpatterns
Example #2
0
    def get(base_view, request, format=None):
        relations = [('base', ApiRoot.REGISTRY_REL_PREFIX + 'base'),
                     ('api-token-auth',
                      ApiRoot.CONTROLLER_REL_PREFIX + 'do-get-auth-token')]
        # http://confine-project.eu/rel/registry like resources
        for model in api._registry:
            name = model_name_urlize(model)
            name = name if is_singleton(model) else '%s-list' % name
            rel = ApiRoot.REGISTRY_REL_PREFIX + name
            relations.append((name, rel))

        # http://confine-project.eu/rel/controller like resources
        for model in api._registry_controller:
            name = model_name_urlize(model)
            name = name if is_singleton(model) else '%s-list' % name
            rel = ApiRoot.CONTROLLER_REL_PREFIX + name
            relations.append((name, rel))

        headers = {'Link': link_header(relations, request)}
        return Response({}, headers=headers)
Example #3
0
 def get(base_view, request, format=None):
     relations = [
         ('base', ApiRoot.REGISTRY_REL_PREFIX + 'base'),
         ('api-token-auth', ApiRoot.CONTROLLER_REL_PREFIX + 'do-get-auth-token')
     ]
     # http://confine-project.eu/rel/registry like resources
     for model in api._registry:
         name = model_name_urlize(model)
         name = name if is_singleton(model) else '%s-list' % name
         rel = ApiRoot.REGISTRY_REL_PREFIX + name
         relations.append((name, rel))
     
     # http://confine-project.eu/rel/controller like resources
     for model in api._registry_controller:
         name = model_name_urlize(model)
         name = name if is_singleton(model) else '%s-list' % name
         rel = ApiRoot.CONTROLLER_REL_PREFIX + name
         relations.append((name, rel))
     
     headers = {'Link': link_header(relations, request)}
     return Response({}, headers=headers)
Example #4
0
 def get(self, request, *args, **kwargs):
     """ Add link header """
     response = super(RetrieveUpdateDestroyAPIView, self).get(request, *args, **kwargs)
     name = model_name_urlize(self.model)
     links = [
         ('base', ApiRoot.REGISTRY_REL_PREFIX + 'base'),
         ('base_controller', ApiRoot.CONTROLLER_REL_PREFIX + 'base'),
     ]
     if not is_singleton(self.model) and getattr(self, 'list', True):
         resource = '%s-list' % name
         link = (resource, self._rel_prefix + resource)
         links.append(link)
     object_id = kwargs.get('pk')
     for endpoint in getattr(self, 'ctl', []):
         resource = '%s-ctl-%s' % (name, endpoint.url_name)
         links.append((resource, endpoint.rel, object_id))
     response['Link'] = link_header(links, request)
     return response
Example #5
0
 def get(self, request, *args, **kwargs):
     """ Add link header """
     response = super(RetrieveUpdateDestroyAPIView,
                      self).get(request, *args, **kwargs)
     name = model_name_urlize(self.model)
     links = [
         ('base', ApiRoot.REGISTRY_REL_PREFIX + 'base'),
         ('base_controller', ApiRoot.CONTROLLER_REL_PREFIX + 'base'),
     ]
     if not is_singleton(self.model) and getattr(self, 'list', True):
         resource = '%s-list' % name
         link = (resource, self._rel_prefix + resource)
         links.append(link)
     object_id = kwargs.get('pk')
     for endpoint in getattr(self, 'ctl', []):
         resource = '%s-ctl-%s' % (name, endpoint.url_name)
         links.append((resource, endpoint.rel, object_id))
     response['Link'] = link_header(links, request)
     return response
Example #6
0
def get_registry_urls(registry):
    urlpatterns = patterns("")

    for model, resource in six.iteritems(registry):
        name = model_name_urlize(model)
        name_plural = model_name_urlize(model, plural=True)
        list_view, detail_view = resource
        for endpoint in getattr(detail_view, "ctl", []):
            urlpatterns += patterns(
                "",
                url(
                    r"^%s/(?P<pk>[0-9]+)/ctl/%s/$" % (name_plural, endpoint.url_name),
                    endpoint.as_view(),
                    name="%s-ctl-%s" % (name, endpoint.url_name),
                ),
            )
        urlpatterns += patterns(
            "",
            url(r"^%s/$" % name_plural, list_view.as_view(), name=name if is_singleton(model) else "%s-list" % name),
            url(r"^%s/(?P<pk>[0-9]+)/$" % name_plural, detail_view.as_view(), name="%s-detail" % name),
        )

    return urlpatterns