/
urls.py
66 lines (47 loc) · 2.64 KB
/
urls.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""
The implementation of this module is based on the example from the Django Rest Framework docs available at
http://django-rest-framework.readthedocs.org/.
"""
from django.conf.urls.defaults import patterns, url
from djangorestframework.resources import ModelResource
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from djangorestframework.permissions import IsAuthenticated
from fiber.models import Page, PageContentItem, ContentItem, Image, File
from views import ApiRoot
from forms import PageForm
class AuthRequiredListOrCreateModelView(ListOrCreateModelView):
"""
Base class for ListOrCreateModelViews. Only
authenticated users are allowed to use the api.
"""
permissions = (IsAuthenticated, )
class AuthRequiredInstanceModelView(InstanceModelView):
"""
Base class for InstanceModelViews. Only
authenticated users are allowed to use the api.
"""
#permissions = (IsAuthenticated, )
class PageResource(ModelResource):
model = Page
form = PageForm
class PageContentItemResource(ModelResource):
model = PageContentItem
class ContentItemResource(ModelResource):
model = ContentItem
class ImageResource(ModelResource):
model = Image
class FileResource(ModelResource):
model = File
urlpatterns = patterns('',
(r'^$', ApiRoot.as_view()),
url(r'^pages/$', AuthRequiredListOrCreateModelView.as_view(resource=PageResource), name='page-resource-root'),
url(r'^pages/(?P<pk>[^/]+)/$', AuthRequiredInstanceModelView.as_view(resource=PageResource), name='page-resource-instance'),
url(r'^page_content_items/$', AuthRequiredListOrCreateModelView.as_view(resource=PageContentItemResource), name='page-content-item-resource-root'),
url(r'^page_content_items/(?P<pk>[^/]+)/$', AuthRequiredInstanceModelView.as_view(resource=PageContentItemResource), name='page-content-item-resource-instance'),
url(r'^content_items/$', AuthRequiredListOrCreateModelView.as_view(resource=ContentItemResource), name='content-item-resource-root'),
url(r'^content_items/(?P<pk>[^/]+)/$', AuthRequiredInstanceModelView.as_view(resource=ContentItemResource), name='content-item-resource-instance'),
url(r'^images/$', AuthRequiredListOrCreateModelView.as_view(resource=ImageResource), name='image-resource-root'),
url(r'^images/(?P<pk>[^/]+)/$', AuthRequiredInstanceModelView.as_view(resource=ImageResource), name='image-resource-instance'),
url(r'^files/$', AuthRequiredListOrCreateModelView.as_view(resource=FileResource), name='file-resource-root'),
url(r'^files/(?P<pk>[^/]+)/$', AuthRequiredInstanceModelView.as_view(resource=FileResource), name='file-resource-instance'),
)