From 0c23e59342cdbae144ba6a615e77040bce73e202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 25 Dec 2018 19:31:24 +0100 Subject: [PATCH] improve stats some more --- src/c3nav/mapdata/api.py | 6 ++++-- src/c3nav/routing/api.py | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/c3nav/mapdata/api.py b/src/c3nav/mapdata/api.py index 96bdf785..c89f3473 100644 --- a/src/c3nav/mapdata/api.py +++ b/src/c3nav/mapdata/api.py @@ -48,7 +48,8 @@ def api_stats_clean_location_value(value): if isinstance(value, str) and value.startswith('c:'): value = value.split(':') value = 'c:%s:%d:%d' % (value[1], int(float(value[2]) / 3) * 3, int(float(value[3]) / 3) * 3) - return value + return (value, 'c:anywhere') + return (value, ) def api_stats(view_name): @@ -58,7 +59,8 @@ def api_stats(view_name): response = func(self, request, *args, **kwargs) if response.status_code < 400 and kwargs: name, value = next(iter(kwargs.items())) - increment_cache_key('apistats__%s__%s__%s' % (view_name, name, api_stats_clean_location_value(value))) + for value in api_stats_clean_location_value(value): + increment_cache_key('apistats__%s__%s__%s' % (view_name, name, value)) return response return wrapped_func return wrapper diff --git a/src/c3nav/routing/api.py b/src/c3nav/routing/api.py index 9f7a1579..3745fbd4 100644 --- a/src/c3nav/routing/api.py +++ b/src/c3nav/routing/api.py @@ -57,16 +57,16 @@ class RoutingViewSet(ViewSet): 'error': _('No route found.'), }) - increment_cache_key('apistats__route_tuple_%s_%s' % ( - api_stats_clean_location_value(form.cleaned_data['origin'].pk), - api_stats_clean_location_value(form.cleaned_data['destination'].pk), - )) - increment_cache_key('apistats__route_origin_%s' % ( - api_stats_clean_location_value(form.cleaned_data['origin'].pk), - )) - increment_cache_key('apistats__route_destination_%s' % ( - api_stats_clean_location_value(form.cleaned_data['destination'].pk), - )) + origin_values = api_stats_clean_location_value(form.cleaned_data['origin'].pk) + destination_values = api_stats_clean_location_value(form.cleaned_data['destination'].pk) + increment_cache_key('apistats__route') + for origin_value in origin_values: + for destination_value in destination_values: + increment_cache_key('apistats__route_tuple_%s_%s' % (origin_value, destination_value)) + for value in origin_values: + increment_cache_key('apistats__route_origin_%s' % value) + for value in destination_values: + increment_cache_key('apistats__route_destination_%s' % value) return Response({ 'request': {