add heavy caching to mapdata api

This commit is contained in:
Laura Klünder 2016-12-07 16:11:33 +01:00
parent 23da7e3605
commit 00193f7e11
22 changed files with 259 additions and 138 deletions

View file

@ -2,7 +2,7 @@ from functools import wraps
from rest_framework.renderers import JSONRenderer
from c3nav.mapdata.utils import json_encoder_reindent
from c3nav.mapdata.utils.json import json_encoder_reindent
orig_render = JSONRenderer.render
@ -11,11 +11,11 @@ orig_render = JSONRenderer.render
def nicer_renderer(self, data, accepted_media_type=None, renderer_context=None):
if self.get_indent(accepted_media_type, renderer_context) is None:
return orig_render(self, data, accepted_media_type, renderer_context)
shorten = isinstance(data, (list, tuple)) and len(data) > 2
shorten = isinstance(data, (list, tuple)) and len(data) > 5
orig_len = None
if shorten:
orig_len = len(data)-2
data = data[:2]
orig_len = len(data)-5
data = data[:5]
result = json_encoder_reindent(lambda d: orig_render(self, d, accepted_media_type, renderer_context), data)
if shorten:
result = (result[:-2] +