diff --git a/core/apps/evaluation/urls.py b/core/apps/evaluation/urls.py index 0a0101a..7d409b6 100644 --- a/core/apps/evaluation/urls.py +++ b/core/apps/evaluation/urls.py @@ -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" + ) ] diff --git a/core/apps/evaluation/views/__init__.py b/core/apps/evaluation/views/__init__.py index a6f2bd5..64a46d9 100644 --- a/core/apps/evaluation/views/__init__.py +++ b/core/apps/evaluation/views/__init__.py @@ -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 * diff --git a/core/apps/evaluation/views/avg_cost.py b/core/apps/evaluation/views/avg_cost.py index 597b9cf..7729385 100644 --- a/core/apps/evaluation/views/avg_cost.py +++ b/core/apps/evaluation/views/avg_cost.py @@ -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) diff --git a/core/services/grpc/auto.py b/core/services/grpc/auto.py index 9ad5198..bb722a3 100644 --- a/core/services/grpc/auto.py +++ b/core/services/grpc/auto.py @@ -1,3 +1,4 @@ +from datetime import datetime import grpc from google.protobuf.timestamp_pb2 import Timestamp from datetime import datetime @@ -15,13 +16,17 @@ def get_auto_avg_cost( distance_covered, color ): - # url = f"{env.str('RPC_IP')}:{env.str('RPC_PORT')}" - # channel = grpc.insecure_channel(url) - channel = grpc.insecure_channel("192.168.1.120:50051") + channel = grpc.insecure_channel("94.230.232.47:50051") stub = auto_pb2_grpc.AutoAvgCostServiceStub(channel) + ts = Timestamp() - ts.FromDatetime(manufacture_date) + if isinstance(manufacture_date, datetime): + dt = manufacture_date + else: + dt = datetime.combine(manufacture_date, datetime.min.time()) + + ts.FromDatetime(dt) response = stub.AutoAvgCost(auto_pb2.AutoAvgCostRequest( brand=brand, @@ -32,6 +37,7 @@ def get_auto_avg_cost( distance_covered=distance_covered, color=color, )) + print("manufacture_date:", manufacture_date, type(manufacture_date)) return { "avg_cost": response.avg_cost,