import grpc from google.protobuf.timestamp_pb2 import Timestamp from datetime import datetime from config.env import env from core.generated import auto_pb2, auto_pb2_grpc def get_auto_avg_cost( brand, condition, model, complication, manufacture_date: datetime, 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") stub = auto_pb2_grpc.AutoAvgCostServiceStub(channel) ts = Timestamp() ts.FromDatetime(manufacture_date) response = stub.AutoAvgCost(auto_pb2.AutoAvgCostRequest( brand=brand, condition=condition, model=model, complication=complication, manufacture_date=ts, distance_covered=distance_covered, color=color, )) return { "avg_cost": response.avg_cost, "ads": [ { "id": ad.id, "title": ad.title, "price": ad.price, "model": ad.model, "images": [img.image for img in ad.images], } for ad in response.ads ] }