add new api

This commit is contained in:
xoliqberdiyev
2026-04-27 14:50:59 +05:00
parent 306aecc956
commit 7134b2c185
4 changed files with 38 additions and 8 deletions

View File

@@ -33,8 +33,10 @@ from .views import (
ArchiveEvaluationrequestView, GetArchivedAutoEvaluationListAPIView, ArchivedAutoEvaluation,
GetArchivedQuickevaluationListAPIView, ChangeQuickevaluationAPIView, ArchivedReqEvaluation,
GetArchivedReqEvaluationListAPIView,
AvgCostView,
)
router = DefaultRouter()
router.register("document-category", DocumentCategoryView, basename="DocumentCategory")
router.register("document", DocumentView, basename="Document")
@@ -95,5 +97,9 @@ urlpatterns = [
path("req-evaluvation-change-status/", GetArchivedReqEvaluationListAPIView.as_view(),
name="archived-req-evaluation"),
path(
"calculate_avg_cost/",
AvgCostView.as_view(),
name="calculate-avg-cost"
)
]

View File

@@ -14,3 +14,4 @@ from .vehicle import * # noqa
from .didox import * # noqa
from .tech_passport import * # noqa
from .certificate import * # noqa
from .avg_cost import *

View File

@@ -10,9 +10,26 @@ class AvgCostView(generics.GenericAPIView):
serializer_class = AvgCostSerializer
permission_classes = [permissions.IsAuthenticated]
def post(self):
serializer = self.get_serializer(data=self.request.data)
def post(self, request):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():
avg_cost = get_auto_avg_cost(serializer.validated_data)
print(serializer.validated_data)
brand = serializer.validated_data['brand']
condition = serializer.validated_data['condition']
model = serializer.validated_data['model']
complication = serializer.validated_data['complication']
manufacture_date = serializer.validated_data['manufacture_date']
distance_covered = serializer.validated_data['distance_covered']
color = serializer.validated_data['color']
avg_cost = get_auto_avg_cost(
brand=brand,
condition=condition,
model=model,
complication=complication,
manufacture_date=manufacture_date,
distance_covered=str(distance_covered),
color=color
)
return Response(avg_cost, status=200)
return Response(serializer.errors, status=400)