diff --git a/backend/core/urls.py b/backend/core/urls.py index 1337ff4..6c406ea 100644 --- a/backend/core/urls.py +++ b/backend/core/urls.py @@ -20,4 +20,5 @@ urlpatterns = [ path("admin", admin.site.urls), path("api/v1/auction", include("auction.urls")), + path("api/v1/vehicle", include("vehicle.urls")), ] diff --git a/backend/vehicle/serializers.py b/backend/vehicle/serializers.py new file mode 100644 index 0000000..5362f77 --- /dev/null +++ b/backend/vehicle/serializers.py @@ -0,0 +1,9 @@ +from rest_framework import serializers + +from .models import Vehicle + + +class VehicleSerializer(serializers.ModelSerializer): + class Meta: + model = Vehicle + fields = '__all__' diff --git a/backend/vehicle/urls.py b/backend/vehicle/urls.py new file mode 100644 index 0000000..2858889 --- /dev/null +++ b/backend/vehicle/urls.py @@ -0,0 +1,8 @@ +from django.contrib import admin +from django.urls import include, path + +from vehicle import views + +urlpatterns = [ + path("", views.VehicleAPIView.as_view(), name="vehicle"), +] diff --git a/backend/vehicle/views.py b/backend/vehicle/views.py index 91ea44a..2505ada 100644 --- a/backend/vehicle/views.py +++ b/backend/vehicle/views.py @@ -1,3 +1,34 @@ -from django.shortcuts import render +from rest_framework import status, generics +from rest_framework.response import Response +from rest_framework.views import APIView -# Create your views here. +from .models import Vehicle, Brand, Type +from .serializers import VehicleSerializer + + +class VehicleAPIView(APIView): + serializer_class = VehicleSerializer + + def get(self, request, *args, **kwargs): + """ + Get specific vehicle + """ + identifier = request.data.get("id") + vehicle = Vehicle.objects.get(id=identifier) + serialized_data = self.serializer_class(vehicle) + try: + return Response(serialized_data.data, status=status.HTTP_200_OK) + except vehicle.DoesNotExist: + return Response(status=status.HTTP_404_NOT_FOUND) + + def post(self, request, *args, **kwargs): + data = request.data + brand_id = data.get("brand") + type_id = data.get("type") + data.pop("brand") + data.pop("type") + brand = Brand.objects.get(id=brand_id) + type = Type.objects.get(id=type_id) + vehicle = Vehicle.objects.create(**data, brand=brand, vehicle_type=type) + serialized_data = self.serializer_class(vehicle) + return Response(serialized_data.data, status=status.HTTP_200_OK)