From 1c7d495deb2095e40ec6d8d0a2e72eec8bf708d0 Mon Sep 17 00:00:00 2001 From: Max Goodman Date: Thu, 22 Dec 2011 01:41:58 -0800 Subject: [PATCH] Allow the render style of api responses to be set by extension. This enables more straightforward pure-json access to apis that return things, such as morechildren.json. --- r2/r2/controllers/validator/validator.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/r2/r2/controllers/validator/validator.py b/r2/r2/controllers/validator/validator.py index fa424dc67..976570284 100644 --- a/r2/r2/controllers/validator/validator.py +++ b/r2/r2/controllers/validator/validator.py @@ -155,7 +155,16 @@ def api_validate(response_type=None): def _api_validate(*simple_vals, **param_vals): def val(fn): def newfn(self, *a, **env): - c.render_style = api_type(request.params.get("renderstyle", response_type)) + renderstyle = request.params.get("renderstyle") + if renderstyle: + c.render_style = api_type(renderstyle) + elif not c.extension: + # if the request URL included an extension, don't + # touch the render_style, since it was already set by + # set_extension. if no extension was provided, default + # to response_type. + c.render_style = api_type(response_type) + # generate a response object if response_type == "html" and not request.params.get('api_type') == "json": responder = JQueryResponse()