From e248e62e2f6c6dd87b28d4907fce21e2c0bd2ee8 Mon Sep 17 00:00:00 2001 From: Amin <45296899+maghasemzadeh@users.noreply.github.com> Date: Sun, 3 Apr 2022 16:46:32 +0430 Subject: [PATCH 1/3] add delete option of old records of request logs --- rest_framework_tracking/mixins.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rest_framework_tracking/mixins.py b/rest_framework_tracking/mixins.py index 0513d48..53b6098 100644 --- a/rest_framework_tracking/mixins.py +++ b/rest_framework_tracking/mixins.py @@ -9,6 +9,11 @@ def handle_log(self): Defaults on saving the data on the db. """ + if self.delete_log_days_period is not None: + from django.utils import timezone + now = timezone.make_aware(datetime.datetime.now(), timezone.get_default_timezone()) + delete_before_date_time = now - datetime.timedelta(days=self.delete_log_days_period) + APIRequestLog.objects.filter(view=self.log['view'], requested_at__lt=delete_before_date_time).delete() APIRequestLog(**self.log).save() From d1588594128e69e93151d6d517ab8058c271b165 Mon Sep 17 00:00:00 2001 From: Amin <45296899+maghasemzadeh@users.noreply.github.com> Date: Sun, 3 Apr 2022 16:47:14 +0430 Subject: [PATCH 2/3] add delete_log_days_period variable --- rest_framework_tracking/base_mixins.py | 1 + 1 file changed, 1 insertion(+) diff --git a/rest_framework_tracking/base_mixins.py b/rest_framework_tracking/base_mixins.py index ae39313..0346f1f 100644 --- a/rest_framework_tracking/base_mixins.py +++ b/rest_framework_tracking/base_mixins.py @@ -18,6 +18,7 @@ class BaseLoggingMixin(object): logging_methods = "__all__" sensitive_fields = {} + delete_log_days_period = None def __init__(self, *args, **kwargs): assert isinstance( From 8a2107b69c2822ce68436588cc9bb19c28b75f10 Mon Sep 17 00:00:00 2001 From: Sourcery AI <> Date: Sun, 3 Apr 2022 12:25:35 +0000 Subject: [PATCH 3/3] 'Refactored by Sourcery' --- rest_framework_tracking/base_mixins.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/rest_framework_tracking/base_mixins.py b/rest_framework_tracking/base_mixins.py index 0346f1f..d78f0d6 100644 --- a/rest_framework_tracking/base_mixins.py +++ b/rest_framework_tracking/base_mixins.py @@ -28,10 +28,13 @@ def __init__(self, *args, **kwargs): def initial(self, request, *args, **kwargs): self.log = {"requested_at": now()} - if not getattr(self, "decode_request_body", app_settings.DECODE_REQUEST_BODY): - self.log["data"] = "" - else: - self.log["data"] = self._clean_data(request.body) + self.log["data"] = ( + self._clean_data(request.body) + if getattr( + self, "decode_request_body", app_settings.DECODE_REQUEST_BODY + ) + else "" + ) super(BaseLoggingMixin, self).initial(request, *args, **kwargs) @@ -144,9 +147,11 @@ def _get_view_name(self, request): try: attributes = getattr(self, method) return ( - type(attributes.__self__).__module__ + "." + type(attributes.__self__).__name__ + f'{type(attributes.__self__).__module__}.' + + type(attributes.__self__).__name__ ) + except AttributeError: return None