update to grpc edit_node to allow editing icon and broadcasting a node update for all to listen to a change

This commit is contained in:
Blake Harnden 2019-10-17 13:00:20 -07:00
parent 74e15d9c9d
commit 5d5ffb70c2
3 changed files with 9 additions and 4 deletions

View file

@ -326,19 +326,20 @@ class CoreGrpcClient(object):
request = core_pb2.GetNodeRequest(session_id=session_id, node_id=node_id) request = core_pb2.GetNodeRequest(session_id=session_id, node_id=node_id)
return self.stub.GetNode(request) return self.stub.GetNode(request)
def edit_node(self, session_id, node_id, position): def edit_node(self, session_id, node_id, position, icon=None):
""" """
Edit a node, currently only changes position. Edit a node, currently only changes position.
:param int session_id: session id :param int session_id: session id
:param int node_id: node id :param int node_id: node id
:param core_pb2.Position position: position to set node to :param core_pb2.Position position: position to set node to
:param str icon: path to icon for gui to use for node
:return: response with result of success or failure :return: response with result of success or failure
:rtype: core_pb2.EditNodeResponse :rtype: core_pb2.EditNodeResponse
:raises grpc.RpcError: when session or node doesn't exist :raises grpc.RpcError: when session or node doesn't exist
""" """
request = core_pb2.EditNodeRequest( request = core_pb2.EditNodeRequest(
session_id=session_id, node_id=node_id, position=position session_id=session_id, node_id=node_id, position=position, icon=icon
) )
return self.stub.EditNode(request) return self.stub.EditNode(request)

View file

@ -842,8 +842,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
""" """
logging.debug("edit node: %s", request) logging.debug("edit node: %s", request)
session = self.get_session(request.session_id, context) session = self.get_session(request.session_id, context)
node_id = request.node_id node = self.get_node(session, request.node_id, context)
node_options = NodeOptions() node_options = NodeOptions()
node_options.icon = request.icon
x = request.position.x x = request.position.x
y = request.position.y y = request.position.y
node_options.set_position(x, y) node_options.set_position(x, y)
@ -853,7 +854,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
node_options.set_location(lat, lon, alt) node_options.set_location(lat, lon, alt)
result = True result = True
try: try:
session.update_node(node_id, node_options) session.update_node(node.id, node_options)
node_data = node.data(0)
session.broadcast_node(node_data)
except CoreError: except CoreError:
result = False result = False
return core_pb2.EditNodeResponse(result=result) return core_pb2.EditNodeResponse(result=result)

View file

@ -316,6 +316,7 @@ message EditNodeRequest {
int32 session_id = 1; int32 session_id = 1;
int32 node_id = 2; int32 node_id = 2;
Position position = 3; Position position = 3;
string icon = 4;
} }
message EditNodeResponse { message EditNodeResponse {