Move parse_repository_name into decorators
This commit is contained in:
parent
a64f268344
commit
98e2ccf74d
10 changed files with 40 additions and 49 deletions
|
@ -4,8 +4,35 @@ from functools import wraps
|
|||
from flask import abort
|
||||
|
||||
import features
|
||||
|
||||
from app import app
|
||||
from auth.auth_context import (
|
||||
get_validated_oauth_token, get_authenticated_user, get_validated_token, get_grant_context)
|
||||
from util.names import parse_namespace_repository
|
||||
|
||||
|
||||
def parse_repository_name(include_tag=False,
|
||||
ns_kwarg_name='namespace_name',
|
||||
repo_kwarg_name='repo_name',
|
||||
tag_kwarg_name='tag_name',
|
||||
incoming_repo_kwarg='repository'):
|
||||
""" Decorator which parses the repository name found in the incoming_repo_kwarg argument,
|
||||
and applies its pieces to the decorated function.
|
||||
"""
|
||||
def inner(func):
|
||||
@wraps(func)
|
||||
def wrapper(*args, **kwargs):
|
||||
repo_name_components = parse_namespace_repository(kwargs[incoming_repo_kwarg],
|
||||
app.config['LIBRARY_NAMESPACE'],
|
||||
include_tag=include_tag)
|
||||
del kwargs[incoming_repo_kwarg]
|
||||
kwargs[ns_kwarg_name] = repo_name_components[0]
|
||||
kwargs[repo_kwarg_name] = repo_name_components[1]
|
||||
if include_tag:
|
||||
kwargs[tag_kwarg_name] = repo_name_components[2]
|
||||
return func(*args, **kwargs)
|
||||
return wrapper
|
||||
return inner
|
||||
|
||||
|
||||
def anon_allowed(func):
|
||||
|
|
Reference in a new issue