diff --git a/passfinder/events/api/serializers.py b/passfinder/events/api/serializers.py index 26b7c7d..03e2a65 100644 --- a/passfinder/events/api/serializers.py +++ b/passfinder/events/api/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from passfinder.events.models import Hotel, HotelPhone, City, Event, BasePoint +from passfinder.events.models import Hotel, HotelPhone, City, Event, BasePoint, Region class HotelPhoneSerializer(serializers.ModelSerializer): @@ -47,3 +47,9 @@ class RouteSerializer(serializers.Serializer): name = serializers.CharField() description = serializers.CharField() points = serializers.ListSerializer(child=PointSerializer()) + + +class RegionSerializer(serializers.ModelSerializer): + class Meta: + model = Region + fields = ["oid", "title", "description_short"] diff --git a/passfinder/events/api/urls.py b/passfinder/events/api/urls.py index 0e282ff..b42e2ba 100644 --- a/passfinder/events/api/urls.py +++ b/passfinder/events/api/urls.py @@ -1,9 +1,10 @@ from django.urls import path -from passfinder.events.api.views import BuildRouteApiView +from passfinder.events.api.views import BuildRouteApiView, ListRegionApiView app_name = "events" urlpatterns = [ - path("route/build", BuildRouteApiView.as_view(), name="build_route") + path("route/build", BuildRouteApiView.as_view(), name="build_route"), + path("regions", ListRegionApiView.as_view(), name="regions"), ] diff --git a/passfinder/events/api/views.py b/passfinder/events/api/views.py index df1ee2f..6ba34f2 100644 --- a/passfinder/events/api/views.py +++ b/passfinder/events/api/views.py @@ -1,10 +1,14 @@ from django_filters import DateFilter from django_filters.rest_framework import DjangoFilterBackend -from rest_framework.generics import GenericAPIView +from rest_framework.generics import GenericAPIView, ListAPIView from rest_framework.response import Response -from passfinder.events.api.serializers import PointSerializer, RouteSerializer -from passfinder.events.models import BasePoint +from passfinder.events.api.serializers import ( + PointSerializer, + RouteSerializer, + RegionSerializer, +) +from passfinder.events.models import BasePoint, Region class BuildRouteApiView(GenericAPIView): @@ -25,3 +29,8 @@ def get(self, request): } ) return Response(data=routes) + + +class ListRegionApiView(ListAPIView): + serializer_class = RegionSerializer + queryset = Region.objects.all()