From 0ebeda5e528f4e82ca19b3c5e9f3d3f5ff6626db Mon Sep 17 00:00:00 2001 From: Max Goodman Date: Tue, 25 Oct 2011 10:40:23 -0700 Subject: [PATCH] Add utilty function to get the handler method for a request. --- r2/r2/controllers/reddit_base.py | 2 +- r2/r2/lib/base.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/r2/r2/controllers/reddit_base.py b/r2/r2/controllers/reddit_base.py index 9c0cbce65..a1bad4cbd 100644 --- a/r2/r2/controllers/reddit_base.py +++ b/r2/r2/controllers/reddit_base.py @@ -669,7 +669,7 @@ class MinimalController(BaseController): action = request.environ["pylons.routes_dict"]["action_name"] - handler = getattr(self, method + "_" + action, None) + handler = self._get_action_handler(action, method) cors = handler and getattr(handler, "cors_perms", None) if cors and cors["origin_check"](origin): diff --git a/r2/r2/lib/base.py b/r2/r2/lib/base.py index a9246cbe6..240e80bb9 100644 --- a/r2/r2/lib/base.py +++ b/r2/r2/lib/base.py @@ -118,6 +118,11 @@ class BaseController(WSGIController): def pre(self): pass def post(self): pass + def _get_action_handler(self, name=None, method=None): + name = name or request.environ["pylons.routes_dict"]["action_name"] + method = method or request.method + action = method + "_" + name + return getattr(self, action, None) @classmethod def format_output_url(cls, url, **kw):