class UserDataHandler(BaseHandler):
model = BookUserData
- fields = ('state',)
+ fields = ('state', 'username')
allowed_methods = ('GET', 'POST')
- def read(self, request, slug):
+ def read(self, request, slug=None):
+ if not request.user.is_authenticated():
+ return rc.FORBIDDEN
+ if slug is None:
+ return {'username': request.user.username}
try:
book = Book.objects.get(slug=slug)
except Book.DoesNotExist:
return rc.NOT_FOUND
- if not request.user.is_authenticated():
- return rc.FORBIDDEN
try:
data = BookUserData.objects.get(book=book, user=request.user)
except BookUserData.DoesNotExist:
url(r'^reading/(?P<slug>[a-z0-9-]+)/$', reading_resource, name='api_reading'),
url(r'^reading/(?P<slug>[a-z0-9-]+)/(?P<state>[a-z]+)/$', reading_resource, name='api_reading'),
url(r'^shelf/(?P<state>[a-z]+)/$', shelf_resource, name='api_shelf'),
+ url(r'^username/$', reading_resource, name='api_username'),
# objects details
url(r'^books/(?P<book>[a-z0-9-]+)/$', book_resource, name="api_book"),