From ffca5c22c7312155d1993dbf255f9773fc3b0e27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Mon, 26 May 2025 10:14:00 -0300 Subject: [PATCH] update readme --- README.md | 5 +++-- .../app/events/emails/access_period_expired.py | 14 -------------- .../emails/certificate_expiration_reminder.py | 13 ------------- http-api/app/rules/enrollment.py | 15 +++++++++++++++ 4 files changed, 18 insertions(+), 29 deletions(-) delete mode 100644 enrollment-management/app/events/emails/access_period_expired.py delete mode 100644 enrollment-management/app/events/emails/certificate_expiration_reminder.py diff --git a/README.md b/README.md index 261200f..a826758 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,10 @@ Quando uma matrícula é criada, também é agendados emails/eventos. - `reminder_no_access_3_days` se o usuário não acessar o curso 3 dias após a criação. - `no_activity_7_days` 7 dias após a última atividade do usuário no curso. -- `access_period_reminder_30_days` 30 dias antes do acesso ao curso fechar. +- `access_period_reminder_30_days` 30 dias antes do perído de acesso ao curso finalizar. - `cert_expiration_reminder_30_days` se houver certificado, avisa 30 dias antes do certificado expirar. -- `course_archived` após o certificado expirar, o curso é marcado como arquivado. +- `course_archived` após o certificado expirar, a matrícula é marcada como arquivada. +- `course_expired` se o período de acesso for atingido e não houver certificado, a matrícula será marcada com expirada. ### Proteção contra duplicação diff --git a/enrollment-management/app/events/emails/access_period_expired.py b/enrollment-management/app/events/emails/access_period_expired.py deleted file mode 100644 index da1a33f..0000000 --- a/enrollment-management/app/events/emails/access_period_expired.py +++ /dev/null @@ -1,14 +0,0 @@ -from aws_lambda_powertools import Logger -from aws_lambda_powertools.utilities.data_classes import ( - EventBridgeEvent, - event_source, -) -from aws_lambda_powertools.utilities.typing import LambdaContext - -logger = Logger(__name__) - - -@event_source(data_class=EventBridgeEvent) -@logger.inject_lambda_context -def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> None: - """Send an email when the access period expires""" diff --git a/enrollment-management/app/events/emails/certificate_expiration_reminder.py b/enrollment-management/app/events/emails/certificate_expiration_reminder.py deleted file mode 100644 index 85c9a1c..0000000 --- a/enrollment-management/app/events/emails/certificate_expiration_reminder.py +++ /dev/null @@ -1,13 +0,0 @@ -from aws_lambda_powertools import Logger -from aws_lambda_powertools.utilities.data_classes import ( - EventBridgeEvent, - event_source, -) -from aws_lambda_powertools.utilities.typing import LambdaContext - -logger = Logger(__name__) - - -@event_source(data_class=EventBridgeEvent) -@logger.inject_lambda_context -def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> None: ... diff --git a/http-api/app/rules/enrollment.py b/http-api/app/rules/enrollment.py index ba9798b..a0b51a3 100644 --- a/http-api/app/rules/enrollment.py +++ b/http-api/app/rules/enrollment.py @@ -41,6 +41,9 @@ class LifecycleEvents(str, Enum): # Archive the course after the certificate expires COURSE_ARCHIVED = 'schedules#course_archived' + # When the access period ends for a course without a certificate + COURSE_EXPIRED = 'schedules#course_expired' + def enroll( enrollment: Enrollment, @@ -95,6 +98,18 @@ def enroll( }, ) + transact.put( + item={ + 'id': enrollment.id, + 'sk': LifecycleEvents.COURSE_EXPIRED, + 'name': user.name, + 'email': user.email, + 'course': course.name, + 'create_date': now_, + 'ttl': ttl(start_dt=now_ + timedelta(days=course.access_period)), + }, + ) + return persistence_layer.transact_write_items(transact)