Added feed api url
This commit is contained in:
parent
65f05ea0ef
commit
4990c983d7
|
@ -0,0 +1,12 @@
|
||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
# django
|
||||||
|
|
||||||
|
# third party
|
||||||
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
# own
|
||||||
|
|
||||||
|
|
||||||
|
class FeedSerializer(serializers.Serializer):
|
||||||
|
pass
|
|
@ -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
|
|
@ -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)
|
|
@ -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:
|
||||||
|
|
|
@ -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')),
|
||||||
|
)
|
Reference in New Issue