Skip to content

Commit

Permalink
feat(Brevo): Commande pour synchroniser toutes les semaines les entre…
Browse files Browse the repository at this point in the history
…prises (SIAE) (#1106)
  • Loading branch information
raphodn authored Feb 29, 2024
1 parent 1225a0c commit 5880917
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 0 deletions.
22 changes: 22 additions & 0 deletions clevercloud/crm_brevo_sync.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash -l

# Sync with Brevo CRM (Siae companies, ...)

# Do not run if this env var is not set:
if [[ -z "$CRON_CRM_BREVO_SYNC_ENABLED" ]]; then
echo "CRON_CRM_BREVO_SYNC_ENABLED not set. Exiting..."
exit 0
fi

# About clever cloud cronjobs:
# https://www.clever-cloud.com/doc/tools/crons/

if [[ "$INSTANCE_NUMBER" != "0" ]]; then
echo "Instance number is ${INSTANCE_NUMBER}. Stop here."
exit 0
fi

# $APP_HOME is set by default by clever cloud.
cd $APP_HOME

django-admin crm_brevo_sync
1 change: 1 addition & 0 deletions clevercloud/cron.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"25 7 * * 1 $ROOT/clevercloud/siaes_update_count_fields.sh",
"30 7 * * 1 $ROOT/clevercloud/siaes_update_super_badge_field.sh",
"50 7 * * 1 $ROOT/clevercloud/companies_update_users.sh",
"55 7 * * 1 $ROOT/clevercloud/crm_brevo_sync.sh",
"0 7 * * 2 $ROOT/clevercloud/siaes_send_completion_reminder_emails.sh",
"0 8 * * * $ROOT/clevercloud/siaes_send_user_request_reminder_emails.sh",
"30 8 * * * $ROOT/clevercloud/tenders_send_author_transactioned_question_emails.sh",
Expand Down
2 changes: 2 additions & 0 deletions config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@
"lemarche.stats",
# CMS (Wagtail)
"lemarche.cms",
# Brevo CRM
"lemarche.crm",
]

WAGTAIL_APPS = [
Expand Down
Empty file added lemarche/crm/__init__.py
Empty file.
38 changes: 38 additions & 0 deletions lemarche/crm/management/commands/crm_brevo_sync.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import time
from datetime import timedelta

from django.utils import timezone

from lemarche.siaes.models import Siae
from lemarche.utils.apis import api_brevo
from lemarche.utils.commands import BaseCommand


ten_days_ago = timezone.now() - timedelta(days=10)


class Command(BaseCommand):
"""
(Weekly) script to send Siae to Brevo CRM (companies)
Usage:
python manage.py crm_brevo_sync
"""

def handle(self, **options):
self.stdout.write("-" * 80)
self.stdout.write("Script to sync with Brevo CRM...")

# SIAE --> companies
# Update only the recently updated
siaes_qs = Siae.objects.filter(updated_at__gte=ten_days_ago)
progress = 0

self.stdout.write(
f"Companies: updating our {Siae.objects.count()} siaes. {siaes_qs.count()} recently updated."
)
for siae in siaes_qs:
api_brevo.create_or_update_company(siae)
progress += 1
if (progress % 10) == 0: # avoid API rate-limiting
time.sleep(1)
1 change: 1 addition & 0 deletions lemarche/utils/apis/api_brevo.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ def create_or_update_company(siae: Siae):
attributes={
"app_id": siae.id,
"siae": True,
"active": siae.is_active,
"description": siae.description,
"kind": siae.kind,
"address_street": siae.address,
Expand Down

0 comments on commit 5880917

Please sign in to comment.