aboutsummaryrefslogtreecommitdiffstats
path: root/src/testapp/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/testapp/views.py')
-rw-r--r--src/testapp/views.py37
1 files changed, 31 insertions, 6 deletions
diff --git a/src/testapp/views.py b/src/testapp/views.py
index d9160af6..f121efa3 100644
--- a/src/testapp/views.py
+++ b/src/testapp/views.py
@@ -1,21 +1,24 @@
-from rest.resource import Resource
+from rest.resource import Resource, ModelResource
from testapp.forms import ExampleForm
+from testapp.models import ExampleModel, ExampleContainer
class RootResource(Resource):
"""This is my docstring
"""
- allowed_methods = ('GET',)
+ allowed_operations = ('read',)
def read(self, headers={}, *args, **kwargs):
return (200, {'read-only-api': self.reverse(ReadOnlyResource),
'write-only-api': self.reverse(WriteOnlyResource),
- 'read-write-api': self.reverse(ReadWriteResource)}, {})
+ 'read-write-api': self.reverse(ReadWriteResource),
+ 'model-api': self.reverse(ModelFormResource),
+ 'create-container': self.reverse(ContainerFactory)}, {})
class ReadOnlyResource(Resource):
"""This is my docstring
"""
- allowed_methods = ('GET',)
+ allowed_operations = ('read',)
def read(self, headers={}, *args, **kwargs):
return (200, {'ExampleString': 'Example',
@@ -26,13 +29,35 @@ class ReadOnlyResource(Resource):
class WriteOnlyResource(Resource):
"""This is my docstring
"""
- allowed_methods = ('PUT',)
+ allowed_operations = ('update',)
def update(self, data, headers={}, *args, **kwargs):
return (200, data, {})
class ReadWriteResource(Resource):
- allowed_methods = ('GET', 'PUT', 'DELETE')
+ allowed_operations = ('read', 'update', 'delete')
create_form = ExampleForm
update_form = ExampleForm
+
+
+class ModelFormResource(ModelResource):
+ allowed_operations = ('read', 'update', 'delete')
+ model = ExampleModel
+
+# Nice things: form validation is applied to any input type
+# html forms for output
+# output always serialized nicely
+class ContainerFactory(ModelResource):
+ allowed_operations = ('create',)
+ model = ExampleContainer
+ fields = ('absolute_uri', 'name', 'key')
+ form_fields = ('name',)
+
+
+class ContainerInstance(ModelResource):
+ allowed_operations = ('read', 'update', 'delete')
+ model = ExampleContainer
+ fields = ('absolute_uri', 'name', 'key')
+ form_fields = ('name',)
+