Jelajahi Sumber

Add sports API

Colin Powell 2 tahun lalu
induk
melakukan
ce1541bb2d

+ 0 - 0
vrobbler/apps/sports/api/__init__.py


+ 52 - 0
vrobbler/apps/sports/api/serializers.py

@@ -0,0 +1,52 @@
+from rest_framework import serializers
+from sports.models import (
+    League,
+    SportEvent,
+    Round,
+    Player,
+    Team,
+    Season,
+    Sport,
+)
+
+
+class SportEventSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = SportEvent
+        fields = "__all__"
+
+
+class LeagueSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = League
+        fields = "__all__"
+
+
+class RoundSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Round
+        fields = "__all__"
+
+
+class PlayerSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Player
+        fields = "__all__"
+
+
+class TeamSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Team
+        fields = "__all__"
+
+
+class SeasonSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Season
+        fields = "__all__"
+
+
+class SportSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Sport
+        fields = "__all__"

+ 61 - 0
vrobbler/apps/sports/api/views.py

@@ -0,0 +1,61 @@
+from rest_framework import permissions, viewsets
+from sports.api.serializers import (
+    LeagueSerializer,
+    PlayerSerializer,
+    RoundSerializer,
+    SeasonSerializer,
+    SportEventSerializer,
+    SportSerializer,
+    TeamSerializer,
+)
+from sports.models import (
+    League,
+    Player,
+    Round,
+    Season,
+    Sport,
+    SportEvent,
+    Team,
+)
+
+
+class SportEventViewSet(viewsets.ModelViewSet):
+    queryset = SportEvent.objects.all().order_by('-created')
+    serializer_class = SportEventSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class LeagueViewSet(viewsets.ModelViewSet):
+    queryset = League.objects.all().order_by('-created')
+    serializer_class = LeagueSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class RoundViewSet(viewsets.ModelViewSet):
+    queryset = Round.objects.all().order_by('-created')
+    serializer_class = RoundSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class SportViewSet(viewsets.ModelViewSet):
+    queryset = Sport.objects.all().order_by('-created')
+    serializer_class = SportSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class PlayerViewSet(viewsets.ModelViewSet):
+    queryset = Player.objects.all().order_by('-created')
+    serializer_class = PlayerSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class TeamViewSet(viewsets.ModelViewSet):
+    queryset = Team.objects.all().order_by('-created')
+    serializer_class = TeamSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class SeasonViewSet(viewsets.ModelViewSet):
+    queryset = Season.objects.all().order_by('-created')
+    serializer_class = SeasonSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 15 - 0
vrobbler/urls.py

@@ -20,6 +20,15 @@ from vrobbler.apps.scrobbles.api.views import (
     LastFmImportViewSet,
     ScrobbleViewSet,
 )
+from vrobbler.apps.sports.api.views import (
+    LeagueViewSet,
+    PlayerViewSet,
+    RoundViewSet,
+    SeasonViewSet,
+    SportEventViewSet,
+    SportViewSet,
+    TeamViewSet,
+)
 from vrobbler.apps.videos import urls as video_urls
 from vrobbler.apps.videos.api.views import SeriesViewSet, VideoViewSet
 
@@ -35,6 +44,12 @@ router.register(r'series', SeriesViewSet)
 router.register(r'videos', VideoViewSet)
 router.register(r'authors', AuthorViewSet)
 router.register(r'books', BookViewSet)
+router.register(r'leagues', LeagueViewSet)
+router.register(r'sports', SportViewSet)
+router.register(r'seasons', SeasonViewSet)
+router.register(r'players', PlayerViewSet)
+router.register(r'sport-events', SportEventViewSet)
+router.register(r'teams', TeamViewSet)
 router.register(r'users', UserViewSet)
 router.register(r'user_profiles', UserProfileViewSet)