Browse Source

add apiviews

blezz-tech 3 months ago
parent
commit
c6e85d70d2

+ 1 - 0
apiviews/__init__.py

@@ -3,3 +3,4 @@ from .frequentaddress import FrequentaddressMVS
 from .orders_local import OrdersLocalMVS
 from .personinfo import PersonInfoMVS
 from .preferreddrivers import PreferreddriversMVS
+from .sport import *

+ 14 - 0
apiviews/sport/__init__.py

@@ -0,0 +1,14 @@
+from .event import EventMVS
+from .achievement import AchievementMVS
+from .achievements import AchievementsMVS
+from .blocked_sportsman import BlockedSportsmanMVS
+from .browse_event import BrowseEventMVS
+from .browse_sportsman import BrowseSportsmanMVS
+from .event_gallery import EventGalleryMVS
+from .participant import ParticipantMVS
+from .saved_event import SavedEventMVS
+from .sport_preferrence import SportPreferrenceMVS
+from .saved_sportsman import SavedSportsmanMVS
+from .sport import SportMVS
+from .sportsman_gallery import SportsmanGalleryMVS
+from .sportsman import SportsmanMVS

+ 12 - 0
apiviews/sport/achievement.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import Achievement
+from webservice_running.serializers import AchievementSerializer
+
+
+class AchievementMVS(viewsets.ModelViewSet):
+    queryset = Achievement.objects.all()
+    serializer_class = AchievementSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/achievements.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import Achievements
+from webservice_running.serializers import AchievementsSerializer
+
+
+class AchievementsMVS(viewsets.ModelViewSet):
+    queryset = Achievements.objects.all()
+    serializer_class = AchievementsSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/blocked_sportsman.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import BlockedSportsman
+from webservice_running.serializers import BlockedSportsmanSerializer
+
+
+class BlockedSportsmanMVS(viewsets.ModelViewSet):
+    queryset = BlockedSportsman.objects.all()
+    serializer_class = BlockedSportsmanSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/browse_event.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import BrowseEvent
+from webservice_running.serializers import BrowseEventSerializer
+
+
+class BrowseEventMVS(viewsets.ModelViewSet):
+    queryset = BrowseEvent.objects.all()
+    serializer_class = BrowseEventSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/browse_sportsman.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import BrowseSportsman
+from webservice_running.serializers import BrowseSportsmanSerializer
+
+
+class BrowseSportsmanMVS(viewsets.ModelViewSet):
+    queryset = BrowseSportsman.objects.all()
+    serializer_class = BrowseSportsmanSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 59 - 0
apiviews/sport/event.py

@@ -0,0 +1,59 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import Event
+from webservice_running.serializers import EventSerializer, EventCreateSerializer
+
+
+class EventMVS(viewsets.ModelViewSet):
+    queryset = Event.objects.all()
+    serializer_class = EventSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    permission_classes = [permissions.IsAuthenticated]
+    
+
+    def get_object(self):
+        """
+        Returns the object the view is displaying.
+
+        You may want to override this if you need to provide non-standard
+        queryset lookups.  Eg if objects are referenced using multiple
+        keyword arguments in the url conf.
+        """
+        # queryset = self.filter_queryset(self.get_queryset())
+        queryset = Event.objects.select_related('order_synced__ticket')
+
+        # Perform the lookup filtering.
+        lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
+
+        assert lookup_url_kwarg in self.kwargs, (
+                'Expected view %s to be called with a URL keyword argument '
+                'named "%s". Fix your URL conf, or set the `.lookup_field` '
+                'attribute on the view correctly.' %
+                (self.__class__.__name__, lookup_url_kwarg)
+        )
+
+        filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
+        obj = get_object_or_404(queryset, **filter_kwargs)
+
+        # May raise a permission denied
+        self.check_object_permissions(self.request, obj)
+
+        return obj
+
+    def update(self, request, *args, **kwargs):
+        partial = kwargs.pop('partial', False)
+        instance = self.get_object()# Event.objects.select_related('order_synced__ticket').get(id=1)
+        serializer = self.get_serializer(instance, data=request.data, partial=partial)
+        # for serializer in serializers:
+        serializer.is_valid(raise_exception=True)
+        self.perform_update(serializer)
+
+        if getattr(instance, '_prefetched_objects_cache', None):
+            # If 'prefetch_related' has been applied to a queryset, we need to
+            # forcibly invalidate the prefetch cache on the instance.
+            instance._prefetched_objects_cache = {}
+
+        return Response(serializer.data)
+
+

+ 12 - 0
apiviews/sport/event_gallery.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import EventGallery
+from webservice_running.serializers import EventGallerySerializer
+
+
+class EventGalleryMVS(viewsets.ModelViewSet):
+    queryset = EventGallery.objects.all()
+    serializer_class = EventGallerySerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/participant.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import Participant
+from webservice_running.serializers import ParticipantSerializer
+
+
+class ParticipantMVS(viewsets.ModelViewSet):
+    queryset = Participant.objects.all()
+    serializer_class = ParticipantSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/saved_event.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import SavedEvent
+from webservice_running.serializers import SavedEventSerializer
+
+
+class SavedEventMVS(viewsets.ModelViewSet):
+    queryset = SavedEvent.objects.all()
+    serializer_class = SavedEventSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/saved_sportsman.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import SavedSportsman
+from webservice_running.serializers import SavedSportsmanSerializer
+
+
+class SavedSportsmanMVS(viewsets.ModelViewSet):
+    queryset = SavedSportsman.objects.all()
+    serializer_class = SavedSportsmanSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/sport.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import Sport
+from webservice_running.serializers import SportSerializer
+
+
+class SportMVS(viewsets.ModelViewSet):
+    queryset = Sport.objects.all()
+    serializer_class = SportSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 12 - 0
apiviews/sport/sport_preferrence.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import SportPreferrence
+from webservice_running.serializers import SportPreferrenceSerializer
+
+
+class SportPreferrenceMVS(viewsets.ModelViewSet):
+    queryset = SportPreferrence.objects.all()
+    serializer_class = SportPreferrenceSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]

+ 66 - 0
apiviews/sport/sportsman.py

@@ -0,0 +1,66 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import Sportsman
+from webservice_running.serializers import SportsmanSerializer
+
+
+class SportsmanMVS(viewsets.ModelViewSet):
+    serializer_class = SportsmanSerializer
+    queryset = Sportsman.objects.all()
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]
+
+    def get_queryset(self):
+        """
+        Optionally restricts the returned sportsmen to a given phone number,
+        by filtering against a `phone_number` query parameter in the URL.
+        """
+        queryset = Sportsman.objects.select_related('client__user')
+        phone_number = self.request.query_params.get('phone_number', None)
+        if phone_number is not None:
+            queryset = queryset.filter(client__user__phone_number=phone_number)
+        return queryset
+
+    def get_object(self, queryset=None):
+        """
+        Returns the object the view is displaying.
+
+        You may want to override this if you need to provide non-standard
+        queryset lookups.  Eg if objects are referenced using multiple
+        keyword arguments in the url conf.
+        """
+        queryset = self.filter_queryset(self.get_queryset())
+        # Perform the lookup filtering.
+        lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
+
+        assert lookup_url_kwarg in self.kwargs, (
+            'Expected view %s to be called with a URL keyword argument '
+            'named "%s". Fix your URL conf, or set the `.lookup_field` '
+            'attribute on the view correctly.' %
+            (self.__class__.__name__, lookup_url_kwarg)
+        )
+
+        filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
+        obj = get_object_or_404(queryset, **filter_kwargs)
+
+        # May raise a permission denied
+        self.check_object_permissions(self.request, obj)
+
+        return obj
+
+
+    def update(self, request, *args, **kwargs):
+        partial = kwargs.pop('partial', False)
+        instance = self.get_object()# Event.objects.select_related('order_synced__ticket').get(id=1)
+        serializer = self.get_serializer(instance, data=request.data, partial=partial)
+        # for serializer in serializers:
+        serializer.is_valid(raise_exception=True)
+        self.perform_update(serializer)
+
+        if getattr(instance, '_prefetched_objects_cache', None):
+            # If 'prefetch_related' has been applied to a queryset, we need to
+            # forcibly invalidate the prefetch cache on the instance.
+            instance._prefetched_objects_cache = {}
+
+        return Response(serializer.data)

+ 12 - 0
apiviews/sport/sportsman_gallery.py

@@ -0,0 +1,12 @@
+from django.shortcuts import get_object_or_404
+from rest_framework import viewsets, permissions
+from rest_framework.response import Response
+from webservice_running.models import SportsmanGallery
+from webservice_running.serializers import SportsmanGallerySerializer
+
+
+class SportsmanGalleryMVS(viewsets.ModelViewSet):
+    queryset = SportsmanGallery.objects.all()
+    serializer_class = SportsmanGallerySerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    #permission_classes = [permissions.IsAuthenticated]