Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added Django REST Framework as new api. Needs work.
- Loading branch information
1 parent
2880762
commit ee649bc
Showing
5 changed files
with
96 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
from django import forms | ||
|
||
POSITION_CHOICES = ['before', 'after', 'inside'] | ||
|
||
class PageForm(forms.Form): | ||
|
||
action = forms.CharField() | ||
position = forms.ChoiceField(choices=POSITION_CHOICES) | ||
target_node_id = forms.IntegerField() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,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'), | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
""" | ||
The root view for the rest api. | ||
""" | ||
|
||
from django.core.urlresolvers import reverse | ||
from djangorestframework.views import View | ||
from djangorestframework.permissions import IsAuthenticated | ||
|
||
class ApiRoot(View): | ||
|
||
permissions = (IsAuthenticated, ) | ||
|
||
def get(self, request): | ||
return [{'name': 'pages', 'url': reverse('page-resource-root')}, | ||
{'name': 'page content items', 'url': reverse('page-content-item-resource-root')}, | ||
{'name': 'content items', 'url': reverse('content-item-resource-root')}, | ||
{'name': 'images', 'url': reverse('image-resource-root')}, | ||
{'name': 'files', 'url': reverse('file-resource-root')}, | ||
] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters