diff --git a/.gitignore b/.gitignore index 99c2aef..e797b49 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,4 @@ music/migrations/__pycache__/ api/__pycache__/ music/tests/__pycache__/ music/views/__pycache__/ -db.sqlite3 \ No newline at end of file +/db.sqlite3 diff --git a/timelaps/migrations/0009_params_comment.py b/timelaps/migrations/0009_params_comment.py new file mode 100644 index 0000000..4f6a59a --- /dev/null +++ b/timelaps/migrations/0009_params_comment.py @@ -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, + ), + ] diff --git a/timelaps/urls.py b/timelaps/urls.py index c1ab240..4d0a86e 100644 --- a/timelaps/urls.py +++ b/timelaps/urls.py @@ -1,7 +1,9 @@ from django.urls import path -from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView, ParamsDetailView#, ListCreateRulesView, RulesDetailView, \ - #ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \ - #RacesDetailView +from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView, \ + ParamsDetailView, ListCreateRelaysView, RelaysDetailView +# , ListCreateRulesView, RulesDetailView, \ +# ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \ +# RacesDetailView urlpatterns = [ path('drivers/', ListCreateDriversView.as_view(), name="drivers-list-create"), @@ -11,9 +13,9 @@ urlpatterns = [ # path('karts//', KartsDetailView.as_view(), name="karts-detail"), # path('rules/', ListCreateRulesView.as_view(), name="rules-list-create"), path('params//', 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//', RelaysDetailView.as_view(), name="relays-detail"), - # path('relays//', RelaysDetailView.as_view(), name="relays-detail"), + path('relays//', RelaysDetailView.as_view(), name="relays-detail"), # path('races/', ListCreateRacesView.as_view(), name="races-list-create"), # path('races//', RacesDetailView.as_view(), name="races-detail"), ] diff --git a/timelaps/views.py b/timelaps/views.py index 4b5ed5e..4825633 100644 --- a/timelaps/views.py +++ b/timelaps/views.py @@ -195,3 +195,72 @@ class ListCreateKartsView(generics.ListCreateAPIView): 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 + )