API - refactor user decorators

This commit is contained in:
Sam
2021-01-20 16:24:01 +01:00
parent bc182442fc
commit d0475eec9f
9 changed files with 45 additions and 43 deletions

View File

@@ -1,7 +1,6 @@
import re
from datetime import timedelta
from functools import wraps
from typing import Any, Callable, Optional, Tuple, Union
from typing import Optional, Tuple, Union
import humanize
from fittrackee.responses import (
@@ -11,7 +10,7 @@ from fittrackee.responses import (
PayloadTooLargeErrorResponse,
UnauthorizedErrorResponse,
)
from flask import Request, current_app, request
from flask import Request, current_app
from .models import User
@@ -130,34 +129,6 @@ def verify_user(
return None, resp
def authenticate(f: Callable) -> Callable:
@wraps(f)
def decorated_function(
*args: Any, **kwargs: Any
) -> Union[Callable, HttpResponse]:
verify_admin = False
response_object, resp = verify_user(request, verify_admin)
if response_object:
return response_object
return f(resp, *args, **kwargs)
return decorated_function
def authenticate_as_admin(f: Callable) -> Callable:
@wraps(f)
def decorated_function(
*args: Any, **kwargs: Any
) -> Union[Callable, HttpResponse]:
verify_admin = True
response_object, resp = verify_user(request, verify_admin)
if response_object:
return response_object
return f(resp, *args, **kwargs)
return decorated_function
def can_view_workout(
auth_user_id: int, workout_user_id: int
) -> Optional[HttpResponse]: