Skip to content

decorators

django_spire.core.decorators

P = ParamSpec('P') module-attribute

T = TypeVar('T') module-attribute

close_db_connections

Source code in django_spire/core/decorators.py
def close_db_connections(func: Callable[P, T]) -> Callable[P, T]:
    @wraps(func)
    def inner(*args: P.args, **kwargs: P.kwargs) -> T:
        try:
            return func(*args, **kwargs)
        finally:
            connections.close_all()

    return inner

valid_ajax_request_required

Source code in django_spire/core/decorators.py
def valid_ajax_request_required(
    method: Callable[..., HttpResponse]
) -> Callable[..., HttpResponse]:
    @wraps(method)
    def wrapper(request: HttpRequest, *args, **kwargs) -> HttpResponse:
        if request.method != 'POST' and request.content_type != 'application/json':
            return JsonResponse(
                {'type': 'error', 'message': 'Invalid Request'}
            )

        return method(request, *args, **kwargs)

    return wrapper