Private
Public Access
1
0

added virtual challenge related data to API

This commit is contained in:
Sander Roosendaal
2020-07-18 11:31:34 +02:00
parent 8f50d24b40
commit fb831743e3
5 changed files with 159 additions and 13 deletions

View File

@@ -7,7 +7,10 @@ from django.conf.urls import url, include
from django.urls import path, re_path
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required, permission_required
from rowers.models import Workout,Rower,FavoriteChart
from rowers.models import (
Workout,Rower,FavoriteChart,VirtualRaceResult,
VirtualRace,StandardCollection,CourseStandard,
)
from rest_framework import routers, serializers, viewsets,permissions
from rest_framework.urlpatterns import format_suffix_patterns
@@ -16,12 +19,19 @@ from rowers import views
from django.contrib.auth import views as auth_views
from django.views.generic.base import TemplateView
from rowers.permissions import IsOwnerOrNot,IsOwnerOrReadOnly
from rowers.permissions import (
IsOwnerOrNot,IsOwnerOrReadOnly,
IsCompetitorOrNot,
)
from rowers.serializers import (
WorkoutSerializer,
RowerSerializer,
StrokeDataSerializer,
FavoriteChartSerializer,
EntrySerializer,
CourseStandardSerializer,
StandardCollectionSerializer,
VirtualRaceSerializer,
)
from oauth2_provider.views import (
@@ -78,7 +88,7 @@ class FavoriteChartViewSet(viewsets.ModelViewSet):
def get_queryset(self):
try:
r = Rower.objects.filter(user=self.request.user)
r = Rower.objects.get(user=self.request.user)
return FavoriteChart.objects.filter(user=r)
except TypeError:
return []
@@ -89,6 +99,59 @@ class FavoriteChartViewSet(viewsets.ModelViewSet):
http_method_names = ['get','put','patch','delete']
class EntryViewSet(viewsets.ModelViewSet):
model = VirtualRaceResult
serializer_class = EntrySerializer
def get_queryset(self):
try:
return VirtualRaceResult.objects.filter(userid=self.request.user.id)
except TypeError:
return []
http_method_names = ['get']
permission_classes = (
IsCompetitorOrNot,
)
class VirtualRaceViewSet(viewsets.ModelViewSet):
model = VirtualRace
serializer_class = VirtualRaceSerializer
def get_queryset(self):
try:
return VirtualRace.objects.all()
except TypeError:
return []
http_method_names = ['get']
class CourseStandardViewSet(viewsets.ModelViewSet):
model = CourseStandard
serializer_class = CourseStandardSerializer
def get_queryset(self):
try:
return CourseStandard.objects.all()
except TypeError:
return []
http_method_names = ['get']
class StandardCollectionViewSet(viewsets.ModelViewSet):
model = StandardCollection
serializer_class = StandardCollectionSerializer
def get_queryset(self):
try:
return StandardCollection.objects.all()
except TypeError:
return []
http_method_names = ['get']
class StrokeDataViewSet(viewsets.ModelViewSet):
serializer_class = StrokeDataSerializer
@@ -97,6 +160,10 @@ router = routers.DefaultRouter()
router.register(r'api/workouts',WorkoutViewSet, 'workout')
router.register(r'api/me',RowerViewSet, 'rower')
router.register(r'api/charts',FavoriteChartViewSet, 'charts')
router.register(r'api/entries',EntryViewSet,'entries')
router.register(r'api/challenges',VirtualRaceViewSet,'challenges')
router.register(r'api/standards',CourseStandardViewSet,'standards')
router.register(r'api/standardcollections',StandardCollectionViewSet,'standardcollections')
def permissiondenied_view(request):
raise PermissionDenied