From 5dc2d691420a2732e1f275d6c9f0c10f5331e0be Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 19 Jan 2024 11:54:52 +0100 Subject: [PATCH] adds api --- padelclub_backend/urls.py | 8 ++++++++ tournaments/serializers.py | 13 +++++++++++++ tournaments/views.py | 22 +++++++++++++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 tournaments/serializers.py diff --git a/padelclub_backend/urls.py b/padelclub_backend/urls.py index 75bdafe..40966f3 100644 --- a/padelclub_backend/urls.py +++ b/padelclub_backend/urls.py @@ -15,8 +15,16 @@ Including another URLconf """ from django.contrib import admin from django.urls import path, include +from tournaments import views +from rest_framework import routers + +router = routers.DefaultRouter() +router.register(r'users', views.UserViewSet) +router.register(r'clubs', views.ClubViewSet) + urlpatterns = [ + path('api/', include(router.urls)), path("tournaments/", include("tournaments.urls")), path('admin/', admin.site.urls), ] diff --git a/tournaments/serializers.py b/tournaments/serializers.py new file mode 100644 index 0000000..2a730db --- /dev/null +++ b/tournaments/serializers.py @@ -0,0 +1,13 @@ +from django.contrib.auth.models import User +from rest_framework import serializers +from .models import Club + +class UserSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = User + fields = ['url', 'username', 'email'] + +class ClubSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = Club + fields = ['id', 'name'] diff --git a/tournaments/views.py b/tournaments/views.py index ceba07f..dda867f 100644 --- a/tournaments/views.py +++ b/tournaments/views.py @@ -1,6 +1,26 @@ from django.shortcuts import render from django.http import HttpResponse - +from rest_framework import viewsets, permissions +from django.contrib.auth.models import User +from .serializers import UserSerializer, ClubSerializer +from .models import Club def index(request): return HttpResponse("Hello, world. You're at the tournaments index.") + + +class UserViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows users to be viewed or edited. + """ + queryset = User.objects.all().order_by('-date_joined') + serializer_class = UserSerializer + permission_classes = [permissions.IsAuthenticated] + +class ClubViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows clubs to be viewed or edited. + """ + queryset = Club.objects.all().order_by('id') + serializer_class = ClubSerializer + permission_classes = [permissions.IsAuthenticated]