From ec47e7754eac2d31014a36222920c3b2fb42c68b Mon Sep 17 00:00:00 2001 From: ITQ Date: Sat, 22 Feb 2025 07:10:40 +0300 Subject: [PATCH] fix: some fixes --- .../backend/api/v1/campaigns/views.py | 4 ++++ .../services/backend/apps/campaign/models.py | 2 ++ .../backend/apps/campaign/validators.py | 22 +++++++------------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/solution/services/backend/api/v1/campaigns/views.py b/solution/services/backend/api/v1/campaigns/views.py index dee0116..e5da4d5 100644 --- a/solution/services/backend/api/v1/campaigns/views.py +++ b/solution/services/backend/api/v1/campaigns/views.py @@ -172,6 +172,10 @@ def upload_ad_image( id=campaign_id, advertiser_id=advertiser_id, ) + if ad_image.size >= 10 * 1024 * 1024: + raise HttpError( + status.BAD_REQUEST, "File can't be bigger than 10MB." + ) try: Image.open(ad_image).verify() except (OSError, SyntaxError): diff --git a/solution/services/backend/apps/campaign/models.py b/solution/services/backend/apps/campaign/models.py index ae5200f..b4082d7 100644 --- a/solution/services/backend/apps/campaign/models.py +++ b/solution/services/backend/apps/campaign/models.py @@ -21,6 +21,7 @@ from apps.campaign.validators import ( CampaignReportMessageValidator, CampaignStartDateValidator, CampaignTargetingLocationValidator, + CampaignTargetingGenderValidator ) from apps.client.models import Client from apps.core.models import BaseModel @@ -96,6 +97,7 @@ class Campaign(BaseModel): return self.ad_title def clean(self) -> None: + CampaignTargetingGenderValidator()(self) CampaignTargetingLocationValidator()(self) CampaignAgeValidator()(self) CampaignDurationValidator()(self) diff --git a/solution/services/backend/apps/campaign/validators.py b/solution/services/backend/apps/campaign/validators.py index ff45719..fe7c8f8 100644 --- a/solution/services/backend/apps/campaign/validators.py +++ b/solution/services/backend/apps/campaign/validators.py @@ -11,18 +11,16 @@ if TYPE_CHECKING: class CampaignTargetingLocationValidator: def __call__(self, instance: "Campaign") -> None: if instance.location == "": - err = { - "targeting": { - type( - instance - ).location.field.name: Field.default_error_messages[ - "blank" - ] - } - } + err = "targeting.location can't be blank." raise ValidationError(err) +class CampaignTargetingGenderValidator: + def __call__(self, instance: "Campaign") -> None: + if instance.gender == "": + err = "gender can't be blank." + raise ValidationError(err) + class CampaignAgeValidator: def __call__(self, instance: "Campaign") -> None: if ( @@ -75,9 +73,5 @@ class CampaignStartDateValidator: class CampaignReportMessageValidator: def __call__(self, instance: "CampaignReport") -> None: if instance.message == "": - err = { - instance.message.field.name: Field.default_error_messages[ - "blank" - ] - } + err = "message can't be blank." raise ValidationError(err)