fmartingr
/
shelfzilla
Archived
1
0
Fork 0

Added feed api url

This commit is contained in:
Felipe Martín 2015-04-05 21:12:20 +02:00
parent 65f05ea0ef
commit 4990c983d7
6 changed files with 88 additions and 3 deletions

View File

View File

@ -0,0 +1,12 @@
# coding: utf-8
# django
# third party
from rest_framework import serializers
# own
class FeedSerializer(serializers.Serializer):
pass

View File

@ -0,0 +1,12 @@
# coding: utf-8
# third
from rest_framework.routers import DefaultRouter
# own
from .views import FeedViewSet
router = DefaultRouter(trailing_slash=False)
router.register(r'feed', FeedViewSet, base_name='feed')
urlpatterns = router.urls

View File

@ -0,0 +1,43 @@
# coding: utf-8
# python
from itertools import chain
import json
# third
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
# own
from shelfzilla.apps.manga.models import (
UserReadVolume, UserHaveVolume, UserWishlistVolume
)
class FeedViewSet(viewsets.ViewSet):
"""
"""
permission_classes = (IsAuthenticated,)
def list(self, request):
owned_list = UserHaveVolume.objects.filter(user=request.user)
wishlisted_list = UserWishlistVolume.objects.filter(user=request.user)
read_list = UserReadVolume.objects.filter(user=request.user)
timeline = sorted(
chain(owned_list, wishlisted_list, read_list),
key=lambda model: model.date,
reverse=True
)[:20]
result = []
for item in timeline:
event = {
'date': item.date,
'message': item.timeline_message,
'type': item.event_type,
}
result.append(event)
return Response(result)

View File

@ -2,7 +2,7 @@ from django.conf.urls import patterns, include, url
from django.conf import settings from django.conf import settings
from django.contrib import admin from django.contrib import admin
from .views import MessagesView, BlockedView from .views import MessagesView
admin.autodiscover() admin.autodiscover()
@ -28,8 +28,7 @@ urlpatterns = patterns(
# API # API
urlpatterns += patterns( urlpatterns += patterns(
'', '',
url(r'^api/v1/auth/register/', BlockedView.as_view()), url(r'^api/v1/', include('shelfzilla.urls_api', namespace='api')),
url(r'^api/v1/auth/', include('djoser.urls', namespace='api')),
) )
if settings.DEBUG: if settings.DEBUG:

19
shelfzilla/urls_api.py Normal file
View File

@ -0,0 +1,19 @@
# coding: utf-8
# django
from django.conf.urls import patterns, include, url
# app
from .views import BlockedView
# API
urlpatterns = patterns(
'',
# Manually blocked API endpoints
url(r'^auth/register/', BlockedView.as_view()),
# /auth
url(r'^auth/', include('djoser.urls')),
# /feed
url(r'^', include('shelfzilla.apps.account.api.urls')),
)