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.contrib import admin
from .views import MessagesView, BlockedView
from .views import MessagesView
admin.autodiscover()
@ -28,8 +28,7 @@ urlpatterns = patterns(
# API
urlpatterns += patterns(
'',
url(r'^api/v1/auth/register/', BlockedView.as_view()),
url(r'^api/v1/auth/', include('djoser.urls', namespace='api')),
url(r'^api/v1/', include('shelfzilla.urls_api', namespace='api')),
)
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')),
)