utils.py 1018 B

123456789101112131415161718192021222324252627282930
  1. from datetime import timedelta
  2. from functools import partial
  3. from typing import Callable, Dict
  4. from django.conf import settings
  5. from django.db.models import QuerySet
  6. from django.contrib.auth import get_user_model
  7. from drf_temptoken import models
  8. User = get_user_model()
  9. TMP_TOKEN_AUTH_HEADER: str = 'Authorization'
  10. TMP_TOKEN_HEADR_PREFIX: str = 'TMP'
  11. TMP_TOKEN_TIME_DELTA_KWARGS: Dict[str, int] = {
  12. 'days': 7
  13. }
  14. get_header_prefix: Callable[[], str] = lambda: getattr(settings, 'TMP_TOKEN_HEADR_PREFIX', TMP_TOKEN_HEADR_PREFIX) + ' '
  15. get_query_param: Callable[[], str] = partial(getattr, settings, 'TMP_TOKEN_QUERY_PARAM', None)
  16. get_time_delta: Callable[[], Dict[str, int]] = partial(timedelta, **getattr(settings, 'TMP_TOKEN_TIME_DELTA_KWARGS', TMP_TOKEN_TIME_DELTA_KWARGS))
  17. get_user_tokens: Callable[[User], QuerySet] = lambda user: models.TempToken.objects.filter(user=user)
  18. create_token: Callable[[User], models.TempToken] = lambda user, **kwargs: models.TempToken.objects.create(user=user, **kwargs)