diff options
| author | Tom Christie | 2013-01-15 21:49:24 +0000 | 
|---|---|---|
| committer | Tom Christie | 2013-01-15 21:49:24 +0000 | 
| commit | 4a7139e41d2500776c30e663c1cebce74b49270d (patch) | |
| tree | c3f60404cbc7fe88e16b305f69129b34a683c30a /rest_framework/routers.py | |
| parent | 71e55cc4f6300959398f7aef4a8d91b6a6a2af57 (diff) | |
| download | django-rest-framework-4a7139e41d2500776c30e663c1cebce74b49270d.tar.bz2 | |
Tweaks
Diffstat (limited to 'rest_framework/routers.py')
| -rw-r--r-- | rest_framework/routers.py | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/rest_framework/routers.py b/rest_framework/routers.py new file mode 100644 index 00000000..a5aef5b7 --- /dev/null +++ b/rest_framework/routers.py @@ -0,0 +1,33 @@ +# Not properly implemented yet, just the basic idea + + +class BaseRouter(object): +    def __init__(self): +        self.resources = [] + +    def register(self, name, resource): +        self.resources.append((name, resource)) + +    @property +    def urlpatterns(self): +        ret = [] + +        for name, resource in self.resources: +            list_actions = { +                'get': getattr(resource, 'list', None), +                'post': getattr(resource, 'create', None) +            } +            detail_actions = { +                'get': getattr(resource, 'retrieve', None), +                'put': getattr(resource, 'update', None), +                'delete': getattr(resource, 'destroy', None) +            } +            list_regex = r'^%s/$' % name +            detail_regex = r'^%s/(?P<pk>[0-9]+)/$' % name +            list_name = '%s-list' +            detail_name = '%s-detail' + +            ret += url(list_regex, resource.as_view(list_actions), list_name) +            ret += url(detail_regex, resource.as_view(detail_actions), detail_name) + +        return ret | 
