add AutoEvaluationRequestView
This commit is contained in:
@@ -1,18 +1,19 @@
|
||||
import re
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
from core.apps.evaluation.models import AutoEvaluationModel,ReferenceitemModel, EvaluationrequestModel
|
||||
from core.apps.evaluation.serializers.reference import ListReferenceitemSerializer
|
||||
from core.apps.evaluation.choices.request import RequestStatus
|
||||
from core.apps.evaluation.models import AutoEvaluationModel, ReferenceitemModel, EvaluationrequestModel
|
||||
from core.apps.evaluation.serializers.reference import ListReferenceitemSerializer
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class BaseAutoevaluationSerializer(serializers.ModelSerializer):
|
||||
status_display = serializers.CharField(source="get_status_display", read_only=True)
|
||||
object_type_display = serializers.CharField(source="get_object_type_display", read_only=True, default=None)
|
||||
object_owner_type_display = serializers.CharField(source="get_object_owner_type_display", read_only=True, default=None)
|
||||
object_owner_type_display = serializers.CharField(source="get_object_owner_type_display", read_only=True,
|
||||
default=None)
|
||||
rate_type = ListReferenceitemSerializer(read_only=True)
|
||||
value_determined = ListReferenceitemSerializer(read_only=True)
|
||||
property_rights = ListReferenceitemSerializer(read_only=True)
|
||||
@@ -72,6 +73,7 @@ class ListAutoevaluationSerializer(BaseAutoevaluationSerializer):
|
||||
class RetrieveAutoevaluationSerializer(BaseAutoevaluationSerializer):
|
||||
car_type_display = serializers.CharField(source="get_car_type_display", read_only=True, default=None)
|
||||
car_wheel_display = serializers.CharField(source="get_car_wheel_display", read_only=True, default=None)
|
||||
|
||||
# object_location_highways_display = serializers.CharField(
|
||||
# source="get_object_location_highways_display", read_only=True, default=None
|
||||
# )
|
||||
@@ -141,7 +143,6 @@ class UpdateAutoevaluationSerializer(serializers.ModelSerializer):
|
||||
allow_null=True,
|
||||
)
|
||||
|
||||
|
||||
class Meta:
|
||||
model = AutoEvaluationModel
|
||||
fields = [
|
||||
@@ -222,6 +223,7 @@ class UpdateAutoevaluationSerializer(serializers.ModelSerializer):
|
||||
|
||||
return attrs
|
||||
|
||||
|
||||
class CreateAutoevaluationSerializer(serializers.ModelSerializer):
|
||||
property_rights = serializers.PrimaryKeyRelatedField(
|
||||
queryset=ReferenceitemModel.objects.all(),
|
||||
@@ -254,7 +256,6 @@ class CreateAutoevaluationSerializer(serializers.ModelSerializer):
|
||||
allow_null=True,
|
||||
)
|
||||
|
||||
|
||||
class Meta:
|
||||
model = AutoEvaluationModel
|
||||
fields = [
|
||||
@@ -356,3 +357,9 @@ class AutoEvaluationAppraisersSerializer(serializers.Serializer):
|
||||
raise serializers.ValidationError("Invalid appraisers IDs.")
|
||||
data['users'] = users
|
||||
return data
|
||||
|
||||
|
||||
class AutoEvaluationSerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = AutoEvaluationModel
|
||||
fields = ("brand", "brand_model", "year", "color", "transmission", "condition", "fuel_type", "mileage")
|
||||
|
||||
@@ -29,6 +29,7 @@ from .views import (
|
||||
DidoxCompanyInfoAPIView,
|
||||
TechPassportAPIView,
|
||||
EvaluationStatusChange,
|
||||
AutoEvaluationRequestView
|
||||
)
|
||||
|
||||
router = DefaultRouter()
|
||||
@@ -53,13 +54,15 @@ router.register("vehicle", VehicleView, basename="vehicle")
|
||||
router.register("valuation", ValuationView, basename="valuation")
|
||||
router.register("property-owner", PropertyOwnerView, basename="property-owner")
|
||||
router.register("customer", CustomerView, basename="customer")
|
||||
router.register("auto-evaluation-request", AutoEvaluationRequestView, basename="auto")
|
||||
urlpatterns = [
|
||||
path("", include(router.urls)),
|
||||
path("auto-evaluation/appraisers/", include(
|
||||
[
|
||||
path("<int:id>/list/", AutoEvaluationListAppraisersView.as_view(), name="auto-evaluation-list-appraisers"),
|
||||
path("<int:id>/set/", AutoEvaluationSetAppraisersView.as_view(), name="auto-evaluation-set-appraisers"),
|
||||
path("<int:id>/remove/", AutoEvaluationRemoveAppraisersView.as_view(), name="auto-evaluation-remove-appraisers"),
|
||||
path("<int:id>/remove/", AutoEvaluationRemoveAppraisersView.as_view(),
|
||||
name="auto-evaluation-remove-appraisers"),
|
||||
]
|
||||
)),
|
||||
path(
|
||||
|
||||
@@ -154,3 +154,20 @@ class AutoEvaluationListAppraisersView(GenericAPIView):
|
||||
return self.get_paginated_response(serializer.data)
|
||||
except Exception as e:
|
||||
return Response({"error": str(e)}, status=500)
|
||||
|
||||
class AutoEvaluationRequestView(APIView):
|
||||
|
||||
def post(self, request):
|
||||
serializer = AutoEvaluationSerializer(data=request.data)
|
||||
|
||||
if serializer.is_valid():
|
||||
data = serializer.validated_data
|
||||
url = "https://uzxarid.felixits.uz/api/v1/ad/price-estimate/"
|
||||
response = requests.post(url, json=data)
|
||||
|
||||
return Response({
|
||||
"success": True,
|
||||
"external_status": response.status_code,
|
||||
"data": response.json(),
|
||||
})
|
||||
return Response({"error": serializer.errors}, status=400)
|
||||
|
||||
Reference in New Issue
Block a user