70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
from concurrent import futures
|
|
import logging
|
|
import uuid
|
|
import grpc
|
|
import sys
|
|
sys.path.append('C:/Users/user/Documents/Develop Land/grpc/NodeTest/lib/proto')
|
|
import users_pb2_grpc as pb2_grpc
|
|
import users_pb2 as pb2
|
|
|
|
users = [
|
|
{
|
|
"id": "a68b823c-7ca6-44bc-b721-fb4d5312cafc",
|
|
"name": "John Brad",
|
|
"age": 23,
|
|
"address": "Address 1",
|
|
},
|
|
{
|
|
"id": "34415c7c-f82d-4e44-88ca-ae2a1aaa92b7",
|
|
"name": "Mary Anne",
|
|
"age": 45,
|
|
"address": "Address 2",
|
|
},
|
|
]
|
|
|
|
class UserController(pb2_grpc.UserServiceServicer):
|
|
|
|
def GetAll(self,request,context):
|
|
return pb2.UserList(users=users)
|
|
def Get(self, request, context):
|
|
pass
|
|
# user.id = str(uuid.uuid4())
|
|
|
|
|
|
def Insert(self, request, context):
|
|
user = request
|
|
user.id = str(uuid.uuid4())
|
|
users.append(user)
|
|
return pb2.User(
|
|
id=user.id,
|
|
name=user.name,
|
|
age=user.age,
|
|
address=user.address
|
|
)
|
|
def Update(self, request, context):
|
|
user = [user for user in users if user['id'] == request.id][0]
|
|
user['id'] = request.id
|
|
user['name'] = request.name
|
|
user['address'] = request.address
|
|
user['age'] = request.age
|
|
return pb2.User(**user)
|
|
def Remove(self, request, context):
|
|
print(request)
|
|
index = next((i for i, user in enumerate(users) if user['id'] == request.id), -1)
|
|
del users[index]
|
|
return pb2.Empty()
|
|
|
|
|
|
def serve():
|
|
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
|
|
pb2_grpc.add_UserServiceServicer_to_server(UserController(), server)
|
|
server.add_insecure_port('[::]:50051')
|
|
server.start()
|
|
print("Server running at http://127.0.0.1:50051")
|
|
server.wait_for_termination()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
logging.basicConfig()
|
|
serve()
|