Add REST API to roster

This commit is contained in:
2021-12-27 16:22:58 +01:00
parent c5bc00d925
commit f98d208a20
5 changed files with 78 additions and 2 deletions

View File

@@ -18,10 +18,12 @@ from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path
from roster import urls as roster_urls
from driver import urls as driver_urls
urlpatterns = [
path('admin/', admin.site.urls),
path('roster/', include(roster_urls)),
path('dcc/', include(driver_urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@@ -0,0 +1,22 @@
from rest_framework import serializers
from metadata.models import Manufacturer, Company, Decoder
class ManufacturerSerializer(serializers.ModelSerializer):
class Meta:
model = Manufacturer
fields = "__all__"
class CompanySerializer(serializers.ModelSerializer):
class Meta:
model = Company
fields = "__all__"
class DecoderSerializer(serializers.ModelSerializer):
manufacturer = serializers.StringRelatedField()
class Meta:
model = Decoder
fields = "__all__"

18
dcc/roster/serializers.py Normal file
View File

@@ -0,0 +1,18 @@
from rest_framework import serializers
from roster.models import Cab
from metadata.serializers import (
ManufacturerSerializer, CompanySerializer, DecoderSerializer)
class CabSerializer(serializers.ModelSerializer):
manufacturer = ManufacturerSerializer()
decoder = DecoderSerializer()
company = CompanySerializer()
# manufacturer = serializers.StringRelatedField()
# decoder = serializers.StringRelatedField()
# company = serializers.StringRelatedField()
class Meta:
model = Cab
fields = "__all__"
read_only_fields = ("identifier", "creation_time", "updated_time")

10
dcc/roster/urls.py Normal file
View File

@@ -0,0 +1,10 @@
from django.urls import path
from roster.views import (
RosterList, RosterGet, RosterAddress, RosterIdentifier)
urlpatterns = [
path('list', RosterList.as_view()),
path('get/<str:uuid>', RosterGet.as_view()),
path('address/<int:address>', RosterAddress.as_view()),
path('identifier/<str:identifier>', RosterIdentifier.as_view()),
]

View File

@@ -1,3 +1,27 @@
from django.shortcuts import render
from rest_framework.generics import ListCreateAPIView, RetrieveUpdateAPIView
# Create your views here.
from roster.models import Cab
from roster.serializers import CabSerializer
class RosterList(ListCreateAPIView):
queryset = Cab.objects.all()
serializer_class = CabSerializer
class RosterGet(RetrieveUpdateAPIView):
queryset = Cab.objects.all()
serializer_class = CabSerializer
lookup_field = 'uuid'
class RosterAddress(RetrieveUpdateAPIView):
queryset = Cab.objects.all()
serializer_class = CabSerializer
lookup_field = 'address'
class RosterIdentifier(RetrieveUpdateAPIView):
queryset = Cab.objects.all()
serializer_class = CabSerializer
lookup_field = 'identifier'