feat: added promocode creation and view

This commit is contained in:
ITQ
2025-01-21 18:44:45 +03:00
parent 36275caf40
commit 5ff66261c3
22 changed files with 813 additions and 56 deletions
+8 -4
View File
@@ -4,7 +4,8 @@ from django.http import HttpRequest, JsonResponse
def handler400(
request: HttpRequest, exception: Exception | None = None
request: HttpRequest,
exception: Exception | None = None,
) -> JsonResponse:
return JsonResponse(
status=status.BAD_REQUEST,
@@ -13,7 +14,8 @@ def handler400(
def handler403(
request: HttpRequest, exception: Exception | None = None
request: HttpRequest,
exception: Exception | None = None,
) -> JsonResponse:
return JsonResponse(
status=status.FORBIDDEN,
@@ -22,7 +24,8 @@ def handler403(
def handler404(
request: HttpRequest, exception: Exception | None = None
request: HttpRequest,
exception: Exception | None = None,
) -> JsonResponse:
return JsonResponse(
status=status.NOT_FOUND,
@@ -31,7 +34,8 @@ def handler404(
def handler500(
request: HttpRequest, exception: Exception | None = None
request: HttpRequest,
exception: Exception | None = None,
) -> JsonResponse:
return JsonResponse(
status=status.INTERNAL_SERVER_ERROR,
+7 -3
View File
@@ -69,7 +69,9 @@ class LoggingHandler(logging.Handler):
for attempt in range(1, self.retries + 1):
response = httpx.post(
self.api_url, data=payload, timeout=self.timeout
self.api_url,
data=payload,
timeout=self.timeout,
)
if response.status_code != httpx.codes.OK:
if attempt == self.retries:
@@ -86,7 +88,8 @@ class LoggingHandler(logging.Handler):
def format(self, record: logging.LogRecord) -> str:
try:
asctime = datetime.datetime.fromtimestamp(
record.created, tz=get_current_timezone()
record.created,
tz=get_current_timezone(),
).strftime("%Y-%m-%d %H:%M:%S %Z")
level_emoji = LEVEL_EMOJIS.get(record.levelname, "")
@@ -111,7 +114,8 @@ class LoggingHandler(logging.Handler):
formatted_message += f" #{record.correlation_id}"
except Exception as format_error: # noqa: BLE001
TELEGRAM_LOG_HANDLER.exception(
"Error formatting log record: %s", format_error
"Error formatting log record: %s",
format_error,
)
return f"Error formatting log record: {format_error}"
else:
+14 -9
View File
@@ -52,7 +52,7 @@ CACHES = {
"LOCATION": REDIS_URI,
"TIMEOUT": None,
"KEY_PREFIX": "django",
}
},
}
@@ -72,22 +72,22 @@ AUTH_PASSWORD_VALIDATORS = [
"NAME": (
"django.contrib.auth."
"password_validation.UserAttributeSimilarityValidator"
)
),
},
{
"NAME": (
"django.contrib.auth.password_validation.MinimumLengthValidator"
)
),
},
{
"NAME": (
"django.contrib.auth.password_validation.CommonPasswordValidator"
)
),
},
{
"NAME": (
"django.contrib.auth.password_validation.NumericPasswordValidator"
)
),
},
]
@@ -244,15 +244,18 @@ WSGI_APPLICATION = "config.wsgi.application"
# Telegram
NOTIFIER_TELEGRAM_BOT_TOKEN = env(
"DJANGO_NOTIFIER_TELEGRAM_BOT_TOKEN", default=None
"DJANGO_NOTIFIER_TELEGRAM_BOT_TOKEN",
default=None,
)
NOTIFIER_TELEGRAM_CHAT_ID = env(
"DJANGO_NOTIFIER_TELEGRAM_CHAT_ID", default=None
"DJANGO_NOTIFIER_TELEGRAM_CHAT_ID",
default=None,
)
NOTIFIER_TELEGRAM_THREAD_ID = env(
"DJANGO_NOTIFIER_TELEGRAM_THREAD_ID", default=None
"DJANGO_NOTIFIER_TELEGRAM_THREAD_ID",
default=None,
)
@@ -416,6 +419,8 @@ INSTALLED_APPS = [
# Internal apps
"apps.core",
"apps.business",
"apps.user",
"apps.promo",
# API v1 apps
"api.v1.ping",
"api.v1.business",
@@ -531,7 +536,7 @@ TEMPLATES = [
"string_if_invalid": "",
"file_charset": "utf-8",
},
}
},
]