Add show_if and hide_if methods for routes and APIs, as well as proper comparison of feature values

This commit is contained in:
Joseph Schorr 2014-04-03 19:32:09 -04:00
parent 0abbf042dd
commit 4f4112b18d
5 changed files with 71 additions and 5 deletions

View file

@ -85,11 +85,32 @@ def handle_api_error(error):
def resource(*urls, **kwargs):
def wrapper(api_resource):
if not api_resource:
return None
api.add_resource(api_resource, *urls, **kwargs)
return api_resource
return wrapper
def show_if(value):
def f(inner):
if not value:
return None
return inner
return f
def hide_if(value):
def f(inner):
if value:
return None
return inner
return f
def truthy_bool(param):
return param not in {False, 'false', 'False', '0', 'FALSE', '', 'null'}
@ -116,6 +137,7 @@ def method_metadata(func, name):
return None
nickname = partial(add_method_metadata, 'nickname')
related_user_resource = partial(add_method_metadata, 'related_user_resource')
internal_only = add_method_metadata('internal', True)