add grpc client
This commit is contained in:
48
core/services/grpc/auto.py
Normal file
48
core/services/grpc/auto.py
Normal file
@@ -0,0 +1,48 @@
|
||||
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
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user