grpc: refactoring for editing/moving nodes, they are now two separate processes, with specific logic to carry each out

This commit is contained in:
Blake Harnden 2021-08-27 16:58:44 -07:00
parent ac5bbf5c6d
commit b96dc621cd
9 changed files with 227 additions and 150 deletions

View file

@ -716,12 +716,15 @@ class CoreHandler(socketserver.BaseRequestHandler):
if message.flags & MessageFlags.ADD.value:
node = self.session.add_node(_class, node_id, options)
if node:
if message.flags & MessageFlags.STRING.value:
self.node_status_request[node.id] = True
if self.session.state == EventTypes.RUNTIME_STATE:
self.send_node_emulation_id(node.id)
has_geo = all(
i is not None for i in [options.lon, options.lat, options.alt]
)
if has_geo:
self.session.broadcast_node(node)
if message.flags & MessageFlags.STRING.value:
self.node_status_request[node.id] = True
if self.session.state == EventTypes.RUNTIME_STATE:
self.send_node_emulation_id(node.id)
elif message.flags & MessageFlags.DELETE.value:
with self._shutdown_lock:
result = self.session.delete_node(node_id)
@ -739,7 +742,16 @@ class CoreHandler(socketserver.BaseRequestHandler):
replies.append(coreapi.CoreNodeMessage.pack(flags, tlvdata))
# node update
else:
self.session.edit_node(node_id, options)
node = self.session.get_node(node_id, NodeBase)
node.icon = options.icon
has_geo = all(
i is not None for i in [options.lon, options.lat, options.alt]
)
if has_geo:
self.session.set_node_geo(node, options.lon, options.lat, options.alt)
self.session.broadcast_node(node)
else:
self.session.set_node_pos(node, options.x, options.y)
return replies