Add basic login.
[wolnelektury.git] / src / newsletter / subscribe.py
index d7a8a27..dc3445f 100644 (file)
@@ -1,11 +1,21 @@
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
 import requests
+from django.conf import settings
+from club.civicrm import civicrm
 
 
 def subscribe(email, newsletter):
-    list_id = newsletter.phplist_id
+    if newsletter.crm_id:
+        subscribe_crm(email, newsletter.crm_id)
+    if newsletter.phplist_id:
+        subscribe_phplist(email, newsletter.phplist_id)
+
+def subscribe_crm(email, group_id):
+    civicrm.add_email_to_group(email, group_id)
+
+def subscribe_phplist(email, list_id):
     data = {
         "email": email,
         "emailconfirm": email,
@@ -13,9 +23,14 @@ def subscribe(email, newsletter):
         "htmlemail": 1,
         "subscribe": "Subscribe",
     }
-    response = requests.post(
-        'https://mailing.mdrn.pl/?p=subscribe',
-        data=data,
-    )
-    response.raise_for_status()
-
+    if settings.NEWSLETTER_PHPLIST_SUBSCRIBE_URL:
+        response = requests.post(
+            settings.NEWSLETTER_PHPLIST_SUBSCRIBE_URL,
+            data=data,
+        )
+        response.raise_for_status()
+    else:
+        print("Newsletter not configured, "
+            "NEWSLETTER_PHPLIST_SUBSCRIBE_URL not set. "
+            f"Trying to subscribe email: {email} to newsletter: {list_id}."
+        )