Setting simple relay routes

This commit is contained in:
bglacial 2019-04-21 12:54:16 +02:00
parent 709d2c8403
commit 72f38a2473
4 changed files with 96 additions and 6 deletions

2
.gitignore vendored
View File

@ -7,4 +7,4 @@ music/migrations/__pycache__/
api/__pycache__/ api/__pycache__/
music/tests/__pycache__/ music/tests/__pycache__/
music/views/__pycache__/ music/views/__pycache__/
db.sqlite3 /db.sqlite3

View File

@ -0,0 +1,19 @@
# Generated by Django 2.0.3 on 2019-04-18 17:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('timelaps', '0008_auto_20190418_0018'),
]
operations = [
migrations.AddField(
model_name='params',
name='comment',
field=models.CharField(default=0, max_length=250),
preserve_default=False,
),
]

View File

@ -1,7 +1,9 @@
from django.urls import path from django.urls import path
from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView, ParamsDetailView#, ListCreateRulesView, RulesDetailView, \ from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView, \
#ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \ ParamsDetailView, ListCreateRelaysView, RelaysDetailView
#RacesDetailView # , ListCreateRulesView, RulesDetailView, \
# ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \
# RacesDetailView
urlpatterns = [ urlpatterns = [
path('drivers/', ListCreateDriversView.as_view(), name="drivers-list-create"), path('drivers/', ListCreateDriversView.as_view(), name="drivers-list-create"),
@ -11,9 +13,9 @@ urlpatterns = [
# path('karts/<int:pk>/', KartsDetailView.as_view(), name="karts-detail"), # path('karts/<int:pk>/', KartsDetailView.as_view(), name="karts-detail"),
# path('rules/', ListCreateRulesView.as_view(), name="rules-list-create"), # path('rules/', ListCreateRulesView.as_view(), name="rules-list-create"),
path('params/<int:pk>/', ParamsDetailView.as_view(), name="rules-detail"), path('params/<int:pk>/', ParamsDetailView.as_view(), name="rules-detail"),
# path('relays/', ListCreateRelaysView.as_view(), name="relays-list-create"), path('relays/', ListCreateRelaysView.as_view(), name="relays-list-create"),
# path('relaysbykart/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"), # path('relaysbykart/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"),
# path('relays/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"), path('relays/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"),
# path('races/', ListCreateRacesView.as_view(), name="races-list-create"), # path('races/', ListCreateRacesView.as_view(), name="races-list-create"),
# path('races/<int:pk>/', RacesDetailView.as_view(), name="races-detail"), # path('races/<int:pk>/', RacesDetailView.as_view(), name="races-detail"),
] ]

View File

@ -195,3 +195,72 @@ class ListCreateKartsView(generics.ListCreateAPIView):
status=status.HTTP_201_CREATED status=status.HTTP_201_CREATED
) )
class ListCreateRelaysView(generics.ListCreateAPIView):
"""
GET songs/
POST songs/
"""
queryset = Relay.objects.all()
serializer_class = RelaySerializer
#@validate_request_driver_data
def post(self, request, *args, **kwargs):
a_kart = Relay.objects.create(
name=request.data["name"],
autonomy=request.data["autonomy"],
comment=request.data["comment"]
)
return Response(
data=RelaySerializer(a_kart).data,
status=status.HTTP_201_CREATED
)
class RelaysDetailView(generics.ListAPIView):
"""
Provides a get method handler.
"""
queryset = Relay.objects.all()
serializer_class = RelaySerializer
#permission_classes = (permissions.IsAuthenticated,)
def get(self, request, *args, **kwargs):
try:
a_relay = self.queryset.get(pk=kwargs["pk"])
return Response(RelaySerializer(a_relay).data)
except Relay.DoesNotExist:
return Response(
data={
"message": "Relay with id: {} does not exist".format(kwargs["pk"])
},
status=status.HTTP_404_NOT_FOUND
)
#@validate_request_driver_data
def put(self, request, *args, **kwargs):
try:
a_relay = self.queryset.get(pk=kwargs["pk"])
serializer = RelaySerializer(instance=a_relay, data=request.data, partial=True)
updated_relay = serializer.update(a_relay, request.data)
return Response(RelaySerializer(updated_relay).data)
except Relay.DoesNotExist:
return Response(
data={
"message": "Relay with id: {} does not exist".format(kwargs["pk"])
},
status=status.HTTP_404_NOT_FOUND
)
def delete(self, request, *args, **kwargs):
try:
a_relay = self.queryset.get(pk=kwargs["pk"])
a_relay.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
except Relay.DoesNotExist:
return Response(
data={
"message": "Relay with id: {} does not exist".format(kwargs["pk"])
},
status=status.HTTP_404_NOT_FOUND
)