add locate_test api
This commit is contained in:
parent
0cd17ea237
commit
66f56f2b71
1 changed files with 16 additions and 1 deletions
|
@ -8,9 +8,10 @@ from rest_framework.viewsets import ViewSet
|
||||||
from c3nav.mapdata.api import api_stats_clean_location_value
|
from c3nav.mapdata.api import api_stats_clean_location_value
|
||||||
from c3nav.mapdata.forms import PositionAPIUpdateForm
|
from c3nav.mapdata.forms import PositionAPIUpdateForm
|
||||||
from c3nav.mapdata.models.access import AccessPermission
|
from c3nav.mapdata.models.access import AccessPermission
|
||||||
|
from c3nav.mapdata.models.geometry.space import RangingBeacon
|
||||||
from c3nav.mapdata.models.locations import Position
|
from c3nav.mapdata.models.locations import Position
|
||||||
from c3nav.mapdata.utils.cache.stats import increment_cache_key
|
from c3nav.mapdata.utils.cache.stats import increment_cache_key
|
||||||
from c3nav.mapdata.utils.locations import visible_locations_for_request
|
from c3nav.mapdata.utils.locations import visible_locations_for_request, CustomLocation
|
||||||
from c3nav.routing.exceptions import LocationUnreachable, NoRouteFound, NotYetRoutable
|
from c3nav.routing.exceptions import LocationUnreachable, NoRouteFound, NotYetRoutable
|
||||||
from c3nav.routing.forms import RouteForm
|
from c3nav.routing.forms import RouteForm
|
||||||
from c3nav.routing.locator import Locator
|
from c3nav.routing.locator import Locator
|
||||||
|
@ -168,3 +169,17 @@ class RoutingViewSet(ViewSet):
|
||||||
form.save()
|
form.save()
|
||||||
|
|
||||||
return Response({'location': None if location is None else location.serialize(simple_geometry=True)})
|
return Response({'location': None if location is None else location.serialize(simple_geometry=True)})
|
||||||
|
|
||||||
|
@action(detail=False)
|
||||||
|
def locate_test(self, request):
|
||||||
|
position = RangingBeacon.objects.select_related('space__level').first()
|
||||||
|
if not position:
|
||||||
|
return Response(None)
|
||||||
|
location = CustomLocation(
|
||||||
|
level=position.space.level,
|
||||||
|
x=position.geometry.x,
|
||||||
|
y=position.geometry.y,
|
||||||
|
permissions=(),
|
||||||
|
icon='my_location'
|
||||||
|
)
|
||||||
|
return Response({'location': location.serialize(simple_geometry=True)})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue