1
from piston.handler import BaseHandler, AnonymousBaseHandler
2
from piston.utils import rc, require_mime, require_extended
4
from blogserver.blog.models import Blogpost
6
class AnonymousBlogpostHandler(AnonymousBaseHandler):
8
Anonymous entrypoint for blogposts.
11
fields = ('id', 'title', 'content', 'created_on')
14
def resource_uri(self):
15
return ('blogposts', [ 'format', ])
17
class BlogpostHandler(BaseHandler):
19
Authenticated entrypoint for blogposts.
22
anonymous = AnonymousBlogpostHandler
23
fields = ('title', 'content', ('author', ('username',)),
24
'created_on', 'content_length')
26
def read(self, title=None):
28
Returns a blogpost, if `title` is given,
29
otherwise all the posts.
32
- `title`: The title of the post to retrieve.
34
base = Blogpost.objects
37
return base.get(title=title)
41
def content_length(self, blogpost):
42
return len(blogpost.content)
45
def create(self, request):
47
Creates a new blogpost.
49
attrs = self.flatten_dict(request.POST)
51
if self.exists(**attrs):
52
return rc.DUPLICATE_ENTRY
54
post = Blogpost(title=attrs['title'],
55
content=attrs['content'],
62
def resource_uri(self):
63
return ('blogposts', [ 'format', ])
b'\\ No newline at end of file'