Prechádzať zdrojové kódy

[api] Add many missing API endpoints

Colin Powell 18 hodín pred
rodič
commit
8603bbd5cb

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


+ 18 - 0
vrobbler/apps/beers/api/serializers.py

@@ -0,0 +1,18 @@
+from rest_framework import serializers
+from beers.models import Beer, BeerProducer, BeerStyle
+
+
+class BeerSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Beer
+        fields = "__all__"
+        
+class BeerProducerSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = BeerProducer
+        fields = "__all__"
+
+class BeerStyleSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = BeerStyle
+        fields = "__all__"

+ 19 - 0
vrobbler/apps/beers/api/views.py

@@ -0,0 +1,19 @@
+from rest_framework import permissions, viewsets
+from beers.api import serializers
+from beers import models
+
+
+class BeerViewSet(viewsets.ModelViewSet):
+    queryset = models.Beer.objects.all().order_by("-created")
+    serializer_class = serializers.BeerSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+class BeerProducerViewSet(viewsets.ModelViewSet):
+    queryset = models.BeerProducer.objects.all().order_by("-created")
+    serializer_class = serializers.BeerProducerSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+class BeerStyleViewSet(viewsets.ModelViewSet):
+    queryset = models.BeerStyle.objects.all().order_by("-created")
+    serializer_class = serializers.BeerStyleSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 22 - 0
vrobbler/apps/boardgames/api/serializers.py

@@ -0,0 +1,22 @@
+from boardgames import models
+from rest_framework import serializers
+
+class BoardGameDesignerSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.BoardGameDesigner
+        fields = "__all__"
+
+class BoardGamePublisherSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.BoardGamePublisher
+        fields = "__all__"
+
+class BoardGameLocationSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.BoardGameLocation
+        fields = "__all__"
+
+class BoardGameSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.BoardGame
+        fields = "__all__"

+ 28 - 0
vrobbler/apps/boardgames/api/views.py

@@ -0,0 +1,28 @@
+from rest_framework import permissions, viewsets
+
+from boardgames.api import serializers
+from boardgames import models
+
+
+class BoardGameDesignerViewSet(viewsets.ModelViewSet):
+    queryset = models.BoardGameDesigner.objects.all().order_by("-created")
+    serializer_class = serializers.BoardGameDesignerSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class BoardGamePublisherViewSet(viewsets.ModelViewSet):
+    queryset = models.BoardGamePublisher.objects.all().order_by("-created")
+    serializer_class = serializers.BoardGamePublisherSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class BoardGameLocationViewSet(viewsets.ModelViewSet):
+    queryset = models.BoardGameLocation.objects.all().order_by("-created")
+    serializer_class = serializers.BoardGameLocationSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class BoardGameViewSet(viewsets.ModelViewSet):
+    queryset = models.BoardGame.objects.all().order_by("-created")
+    serializer_class = serializers.BoardGameSerializer
+    permission_classes = [permissions.IsAuthenticated]

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


+ 8 - 0
vrobbler/apps/bricksets/api/serializers.py

@@ -0,0 +1,8 @@
+from rest_framework import serializers
+from bricksets.models import BrickSet
+
+
+class BrickSetSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = BrickSet
+        fields = "__all__"

+ 9 - 0
vrobbler/apps/bricksets/api/views.py

@@ -0,0 +1,9 @@
+from rest_framework import permissions, viewsets
+from bricksets.api.serializers import BrickSetSerializer
+from bricksets.models import BrickSet
+
+
+class BrickSetViewSet(viewsets.ModelViewSet):
+    queryset = BrickSet.objects.all().order_by("-created")
+    serializer_class = BrickSetSerializer
+    permission_classes = [permissions.IsAuthenticated]

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


+ 14 - 0
vrobbler/apps/foods/api/serializers.py

@@ -0,0 +1,14 @@
+from rest_framework import serializers
+from foods import models
+
+
+class FoodCategorySerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.FoodCategory
+        fields = "__all__"
+
+
+class FoodSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.Food
+        fields = "__all__"

+ 21 - 0
vrobbler/apps/foods/api/views.py

@@ -0,0 +1,21 @@
+from rest_framework import permissions, viewsets
+from foods.api.serializers import (
+    FoodSerializer,
+    FoodCategorySerializer,
+)
+from foods.models import (
+    FoodCategory,
+    Food,
+)
+
+
+class FoodCategoryViewSet(viewsets.ModelViewSet):
+    queryset = FoodCategory.objects.all().order_by("-created")
+    serializer_class = FoodCategorySerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class FoodViewSet(viewsets.ModelViewSet):
+    queryset = Food.objects.all().order_by("-created")
+    serializer_class = FoodSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 8 - 0
vrobbler/apps/locations/api/serializers.py

@@ -0,0 +1,8 @@
+from locations import models
+from rest_framework import serializers
+
+
+class GeoLocationSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.GeoLocation
+        fields = "__all__"

+ 9 - 0
vrobbler/apps/locations/api/views.py

@@ -0,0 +1,9 @@
+from rest_framework import permissions, viewsets
+
+from locations.api import serializers
+from locations import models
+
+class GeoLocationViewSet(viewsets.ModelViewSet):
+    queryset = models.GeoLocation.objects.all().order_by("-created")
+    serializer_class = serializers.GeoLocationSerializer
+    permission_classes = [permissions.IsAuthenticated]

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


+ 8 - 0
vrobbler/apps/moods/api/serializers.py

@@ -0,0 +1,8 @@
+from rest_framework import serializers
+from moods.models import Mood
+
+
+class MoodSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Mood
+        fields = "__all__"

+ 9 - 0
vrobbler/apps/moods/api/views.py

@@ -0,0 +1,9 @@
+from rest_framework import permissions, viewsets
+from moods.api.serializers import MoodSerializer
+from moods.models import Mood
+
+
+class MoodViewSet(viewsets.ModelViewSet):
+    queryset = Mood.objects.all().order_by("-created")
+    serializer_class = MoodSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 17 - 0
vrobbler/apps/podcasts/api/serializers.py

@@ -0,0 +1,17 @@
+from podcasts import models
+from rest_framework import serializers
+
+class ProducerSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.Producer
+        fields = "__all__"
+
+class PodcastEpisodeSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.PodcastEpisode
+        fields = "__all__"
+
+class PodcastSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.Podcast
+        fields = "__all__"

+ 20 - 0
vrobbler/apps/podcasts/api/views.py

@@ -0,0 +1,20 @@
+from rest_framework import permissions, viewsets
+
+from podcasts.api import serializers
+from podcasts import models
+
+
+class ProducerViewSet(viewsets.ModelViewSet):
+    queryset = models.Producer.objects.all().order_by("-created")
+    serializer_class = serializers.ProducerSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+class PodcastViewSet(viewsets.ModelViewSet):
+    queryset = models.Podcast.objects.all().order_by("-created")
+    serializer_class = serializers.PodcastSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+class PodcastEpisodeViewSet(viewsets.ModelViewSet):
+    queryset = models.PodcastEpisode.objects.all().order_by("-created")
+    serializer_class = serializers.PodcastEpisodeSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
vrobbler/apps/puzzles/api/serializers.py

@@ -0,0 +1,12 @@
+from puzzles import models
+from rest_framework import serializers
+
+class PuzzleManufacturerSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.PuzzleManufacturer
+        fields = "__all__"
+
+class PuzzleSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.Puzzle
+        fields = "__all__"

+ 15 - 0
vrobbler/apps/puzzles/api/views.py

@@ -0,0 +1,15 @@
+from rest_framework import permissions, viewsets
+
+from puzzles.api import serializers
+from puzzles import models
+
+class PuzzleManufacturerViewSet(viewsets.ModelViewSet):
+    queryset = models.PuzzleManufacturer.objects.all().order_by("-created")
+    serializer_class = serializers.PuzzleManufacturerSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class PuzzleViewSet(viewsets.ModelViewSet):
+    queryset = models.Puzzle.objects.all().order_by("-created")
+    serializer_class = serializers.PuzzleSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 8 - 0
vrobbler/apps/tasks/api/serializers.py

@@ -0,0 +1,8 @@
+from tasks import models
+from rest_framework import serializers
+
+
+class TaskSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = models.Task
+        fields = "__all__"

+ 10 - 0
vrobbler/apps/tasks/api/views.py

@@ -0,0 +1,10 @@
+from rest_framework import permissions, viewsets
+
+from tasks.api import serializers
+from tasks import models
+
+
+class TaskViewSet(viewsets.ModelViewSet):
+    queryset = models.Task.objects.all().order_by("-created")
+    serializer_class = serializers.TaskSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 14 - 0
vrobbler/apps/webpages/api/serializers.py

@@ -0,0 +1,14 @@
+from webpages.models import Domain, WebPage
+from rest_framework import serializers
+
+
+class DomainSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = Domain
+        fields = "__all__"
+
+
+class WebPageSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = WebPage
+        fields = "__all__"

+ 19 - 0
vrobbler/apps/webpages/api/views.py

@@ -0,0 +1,19 @@
+from rest_framework import permissions, viewsets
+
+from webpages.api.serializers import (
+    DomainSerializer,
+    WebPageSerializer,
+)
+from webpages.models import Domain, WebPage
+
+
+class DomainViewSet(viewsets.ModelViewSet):
+    queryset = Domain.objects.all().order_by("-created")
+    serializer_class = DomainSerializer
+    permission_classes = [permissions.IsAuthenticated]
+
+
+class WebPageViewSet(viewsets.ModelViewSet):
+    queryset = WebPage.objects.all().order_by("-created")
+    serializer_class = WebPageSerializer
+    permission_classes = [permissions.IsAuthenticated]

+ 29 - 0
vrobbler/urls.py

@@ -5,12 +5,15 @@ from rest_framework import routers
 
 import vrobbler.apps.scrobbles.views as scrobbles_views
 from vrobbler.apps.boardgames import urls as boardgame_urls
+from vrobbler.apps.boardgames.api.views import BoardGameViewSet, BoardGameDesignerViewSet, BoardGamePublisherViewSet, BoardGameLocationViewSet
 from vrobbler.apps.books import urls as book_urls
 from vrobbler.apps.books.api.views import AuthorViewSet, BookViewSet
 from vrobbler.apps.bricksets import urls as bricksets_urls
 from vrobbler.apps.lifeevents import urls as lifeevents_urls
 from vrobbler.apps.locations import urls as locations_urls
+from vrobbler.apps.locations.api.views import GeoLocationViewSet
 from vrobbler.apps.moods import urls as moods_urls
+from vrobbler.apps.moods.api.views import MoodViewSet
 from vrobbler.apps.music import urls as music_urls
 from vrobbler.apps.music.api.views import (
     AlbumViewSet,
@@ -18,6 +21,7 @@ from vrobbler.apps.music.api.views import (
     TrackViewSet,
 )
 from vrobbler.apps.podcasts import urls as podcast_urls
+from vrobbler.apps.podcasts.api.views import ProducerViewSet, PodcastViewSet, PodcastEpisodeViewSet
 from vrobbler.apps.profiles.api.views import UserProfileViewSet, UserViewSet
 from vrobbler.apps.scrobbles import urls as scrobble_urls
 from vrobbler.apps.scrobbles.api.views import (
@@ -36,15 +40,21 @@ from vrobbler.apps.sports.api.views import (
     TeamViewSet,
 )
 from vrobbler.apps.tasks import urls as tasks_urls
+from vrobbler.apps.tasks.api.views import TaskViewSet
 from vrobbler.apps.profiles import urls as profiles_urls
 from vrobbler.apps.trails import urls as trails_urls
 from vrobbler.apps.beers import urls as beers_urls
+from vrobbler.apps.beers.api.views import BeerViewSet, BeerProducerViewSet, BeerStyleViewSet
 from vrobbler.apps.foods import urls as foods_urls
+from vrobbler.apps.foods.api.views import FoodViewSet
 from vrobbler.apps.puzzles import urls as puzzles_urls
+from vrobbler.apps.puzzles.api.views import PuzzleViewSet, PuzzleManufacturerViewSet
 from vrobbler.apps.videogames import urls as videogame_urls
 from vrobbler.apps.videos import urls as video_urls
 from vrobbler.apps.videos.api.views import SeriesViewSet, VideoViewSet
 from vrobbler.apps.webpages import urls as webpages_urls
+from vrobbler.apps.webpages.api.views import DomainViewSet, WebPageViewSet
+from vrobbler.apps.bricksets.api.views import BrickSetViewSet
 
 # from vrobbler.apps.modern_ui import urls as modern_ui_urls
 
@@ -68,6 +78,25 @@ router.register(r"sport-events", SportEventViewSet)
 router.register(r"teams", TeamViewSet)
 router.register(r"users", UserViewSet)
 router.register(r"profiles", UserProfileViewSet)
+router.register(r"domains", DomainViewSet)
+router.register(r"webpages", WebPageViewSet)
+router.register(r"foods", FoodViewSet)
+router.register(r"moods", MoodViewSet)
+router.register(r"tasks", TaskViewSet)
+router.register(r"locations", GeoLocationViewSet)
+router.register(r"beers", BeerViewSet)
+router.register(r"beer-producers", BeerProducerViewSet)
+router.register(r"beer-styles", BeerStyleViewSet)
+router.register(r"boardgames", BoardGameViewSet)
+router.register(r"boardgame-designers", BoardGameDesignerViewSet)
+router.register(r"boardgame-publishers", BoardGamePublisherViewSet)
+router.register(r"boardgame-locations", BoardGameLocationViewSet)
+router.register(r"podcast-producers", ProducerViewSet)
+router.register(r"podcast-episodes", PodcastEpisodeViewSet)
+router.register(r"podcasts", PodcastViewSet)
+router.register(r"puzzle-manufacturers", PuzzleManufacturerViewSet)
+router.register(r"puzzles", PuzzleViewSet)
+router.register(r"bricksets", BrickSetViewSet)
 
 urlpatterns = [
     path("api/v1/", include(router.urls)),