Skip to content
Snippets Groups Projects
Commit f0ef002e authored by jan.bednarik's avatar jan.bednarik
Browse files

czech inspirational: Newsletter subscribe refactoring

parent 2d7f1805
No related branches found
No related tags found
2 merge requests!263release,!262Volby
import json
import logging
import requests
from django.conf import settings from django.conf import settings
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.core.validators import validate_email from django.core.validators import validate_email
...@@ -20,11 +16,10 @@ from wagtail.images.edit_handlers import ImageChooserPanel ...@@ -20,11 +16,10 @@ from wagtail.images.edit_handlers import ImageChooserPanel
from wagtailmetadata.models import MetadataPageMixin from wagtailmetadata.models import MetadataPageMixin
from shared.models import SubpageMixin from shared.models import SubpageMixin
from shared.utils import subscribe_to_newsletter
from tuning import help from tuning import help
from uniweb.constants import RICH_TEXT_FEATURES from uniweb.constants import RICH_TEXT_FEATURES
logger = logging.getLogger()
class CzechInspirationalHomePage(Page, MetadataPageMixin): class CzechInspirationalHomePage(Page, MetadataPageMixin):
### FIELDS ### FIELDS
...@@ -285,19 +280,10 @@ class CzechInspirationalDownloadPage(Page, SubpageMixin, MetadataPageMixin): ...@@ -285,19 +280,10 @@ class CzechInspirationalDownloadPage(Page, SubpageMixin, MetadataPageMixin):
except ValidationError: except ValidationError:
pass pass
else: else:
payload = { subscribe_to_newsletter(
"email": email, email,
"news_id": settings.CZECH_INSPIRATIONAL_NEWSLETTER_ID, settings.CZECH_INSPIRATIONAL_NEWSLETTER_ID,
} settings.CZECH_INSPIRATIONAL_NEWSLETTER_SOURCE,
response = requests.post(
settings.NALODENI_API_NEWS_SUBSCRIBE_URL,
data=json.dumps(payload),
auth=tuple(settings.NALODENI_API_CREDENTIALS.split(":")),
) )
if response.status_code != 200:
logger.error(
"Failed to subscribe!",
extra={"email": email, "response": response.text},
)
return context return context
...@@ -254,7 +254,15 @@ DONATE_PORTAL_API_CACHE_TIMEOUT = 60 * 5 ...@@ -254,7 +254,15 @@ DONATE_PORTAL_API_CACHE_TIMEOUT = 60 * 5
CZECH_INSPIRATIONAL_NEWSLETTER_ID = env.int( CZECH_INSPIRATIONAL_NEWSLETTER_ID = env.int(
"CZECH_INSPIRATIONAL_NEWSLETTER_ID", default=0 "CZECH_INSPIRATIONAL_NEWSLETTER_ID", default=0
) )
CZECH_INSPIRATIONAL_NEWSLETTER_SOURCE = env.str(
"CZECH_INSPIRATIONAL_NEWSLETTER_SOURCE", default="Česko inspirativní"
)
NALODENI_API_NEWS_SUBSCRIBE_URL = env.str("NALODENI_API_NEWS_SUBSCRIBE_URL", default="") NALODENI_API_NEWS_SUBSCRIBE_URL = env.str("NALODENI_API_NEWS_SUBSCRIBE_URL", default="")
NALODENI_API_CREDENTIALS = env.str("NALODENI_API_CREDENTIALS", default="") NALODENI_API_CREDENTIALS = env.str("NALODENI_API_CREDENTIALS", default="")
ELECTIONS2021_COOKIE_NAME = "program" ELECTIONS2021_COOKIE_NAME = "program"
ELECTIONS2021_NEWSLETTER_ID = env.int("ELECTIONS2021_NEWSLETTER_ID", default=0)
ELECTIONS2021_NEWSLETTER_SOURCE = env.str(
"ELECTIONS2021_NEWSLETTER_SOURCE", "Koalice 2021"
)
import json
import logging
import requests
from django.conf import settings
from wagtail.core.models import Page from wagtail.core.models import Page
logger = logging.getLogger()
def get_subpage_url(page, dest_page_type): def get_subpage_url(page, dest_page_type):
try: try:
return page.get_descendants().type(dest_page_type).live().first().get_url() return page.get_descendants().type(dest_page_type).live().first().get_url()
except (Page.DoesNotExist, AttributeError): except (Page.DoesNotExist, AttributeError):
return "#" return "#"
def subscribe_to_newsletter(email, news_id, source):
payload = {
"email": email,
"news_id": news_id,
"source": source,
}
response = requests.post(
settings.NALODENI_API_NEWS_SUBSCRIBE_URL,
data=json.dumps(payload),
auth=tuple(settings.NALODENI_API_CREDENTIALS.split(":")),
)
if response.status_code != 200:
logger.error(
"Failed to subscribe!",
extra={"payload": payload, "response": response.text},
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment