From bcc5d8d2f3b165696f96bdb78b504f9070697378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sat, 28 Dec 2024 23:51:32 +0100 Subject: [PATCH] rounded_pk --- src/c3nav/mapdata/utils/locations.py | 4 ++++ src/c3nav/routing/api/positioning.py | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/c3nav/mapdata/utils/locations.py b/src/c3nav/mapdata/utils/locations.py index 596bd515..88c557ce 100644 --- a/src/c3nav/mapdata/utils/locations.py +++ b/src/c3nav/mapdata/utils/locations.py @@ -293,6 +293,10 @@ class CustomLocation: y = round(self.y, 2) self.pk = 'c:%s:%s:%s' % (self.level.level_index, x, y) + @property + def rounded_pk(self): + return 'c:%s:%s:%s' % (self.level.level_index, self.x//5*5, self.y//5*5) + @property def serialized_geometry(self): return { diff --git a/src/c3nav/routing/api/positioning.py b/src/c3nav/routing/api/positioning.py index c3157ba7..85db46b5 100644 --- a/src/c3nav/routing/api/positioning.py +++ b/src/c3nav/routing/api/positioning.py @@ -46,8 +46,7 @@ def get_position(request, parameters: LocateRequestSchema): location = Locator.load().locate(parameters.wifi_peers, permissions=AccessPermission.get_for_request(request)) if location is not None: - # todo: this will overload us probably, group these - increment_cache_key('apistats__locate__%s' % location.pk) + increment_cache_key('apistats__locate__%s' % location.rounded_pk) except ValidationError: # todo: validation error, seriously? this shouldn't happen anyways raise