Initialize FishIQ development foundation
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from django.http import JsonResponse
|
||||
from rest_framework import permissions, viewsets
|
||||
from .models import Recommendation, Species, Trip, WaterBody
|
||||
from .serializers import RecommendationSerializer, SpeciesSerializer, TripSerializer, WaterBodySerializer
|
||||
|
||||
def health(_request):
|
||||
return JsonResponse({"status": "ok", "service": "fishiq-api"})
|
||||
|
||||
class ReadOnlyCatalogViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
permission_classes = [permissions.AllowAny]
|
||||
|
||||
class SpeciesViewSet(ReadOnlyCatalogViewSet):
|
||||
queryset = Species.objects.all().order_by("common_name")
|
||||
serializer_class = SpeciesSerializer
|
||||
|
||||
class WaterBodyViewSet(ReadOnlyCatalogViewSet):
|
||||
queryset = WaterBody.objects.prefetch_related("species").all().order_by("name")
|
||||
serializer_class = WaterBodySerializer
|
||||
|
||||
class TripViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = TripSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
def get_queryset(self): return Trip.objects.filter(owner=self.request.user).select_related("water_body")
|
||||
def perform_create(self, serializer): serializer.save(owner=self.request.user)
|
||||
|
||||
class RecommendationViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
serializer_class = RecommendationSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
def get_queryset(self): return Recommendation.objects.filter(trip__owner=self.request.user)
|
||||
|
||||
Reference in New Issue
Block a user