aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/routers.py
diff options
context:
space:
mode:
authorTom Christie2013-01-15 21:49:24 +0000
committerTom Christie2013-01-15 21:49:24 +0000
commit4a7139e41d2500776c30e663c1cebce74b49270d (patch)
treec3f60404cbc7fe88e16b305f69129b34a683c30a /rest_framework/routers.py
parent71e55cc4f6300959398f7aef4a8d91b6a6a2af57 (diff)
downloaddjango-rest-framework-4a7139e41d2500776c30e663c1cebce74b49270d.tar.bz2
Tweaks
Diffstat (limited to 'rest_framework/routers.py')
-rw-r--r--rest_framework/routers.py33
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