move test part of locate_test into locate_test

This commit is contained in:
Laura Klünder 2023-11-11 15:32:12 +01:00
parent 2ee0dd4579
commit 0a9bf327c3
2 changed files with 23 additions and 26 deletions

View file

@ -173,5 +173,20 @@ class RoutingViewSet(ViewSet):
@action(detail=False)
def locate_test(self, request):
from c3nav.mesh.models import MeshNode
from c3nav.mesh.messages import MeshMessageType
try:
node = MeshNode.objects.prefetch_last_messages(MeshMessageType.LOCATE_RANGE_RESULTS).get(
address="d4:f9:8d:2d:0d:f1"
)
except MeshNode.DoesNotExist:
raise
msg = node.last_messages[MeshMessageType.LOCATE_RANGE_RESULTS]
locator = RangeLocator.load()
return Response(locator.locate(None, None))
location = locator.locate({r.peer: r.distance for r in msg.parsed.ranges}, None)
return Response({
"ranges": msg.parsed.tojson(msg.parsed)["ranges"],
"datetime": msg.datetime,
"location": location.serialize(simple_geometry=True) if location else None
})