diff --git a/app/billing/billing_schemas.py b/app/billing/billing_schemas.py index 9884be11f..966c274a0 100644 --- a/app/billing/billing_schemas.py +++ b/app/billing/billing_schemas.py @@ -1,5 +1,7 @@ from datetime import datetime +from app.enums import NotificationType + create_or_update_free_sms_fragment_limit_schema = { "$schema": "http://json-schema.org/draft-07/schema#", "description": "POST annual billing schema", diff --git a/app/celery/nightly_tasks.py b/app/celery/nightly_tasks.py index 3a4e8fa59..1c208104b 100644 --- a/app/celery/nightly_tasks.py +++ b/app/celery/nightly_tasks.py @@ -25,7 +25,8 @@ from app.dao.notifications_dao import ( from app.dao.service_data_retention_dao import ( fetch_service_data_retention_for_all_services_by_notification_type, ) -from app.models import FactProcessingTime, NotificationType +from app.enums import NotificationType +from app.models import FactProcessingTime from app.utils import get_midnight_in_utc diff --git a/app/celery/reporting_tasks.py b/app/celery/reporting_tasks.py index c7c60f1cf..aa8f6fece 100644 --- a/app/celery/reporting_tasks.py +++ b/app/celery/reporting_tasks.py @@ -8,7 +8,7 @@ from app.cronitor import cronitor from app.dao.fact_billing_dao import fetch_billing_data_for_day, update_fact_billing from app.dao.fact_notification_status_dao import update_fact_notification_status from app.dao.notifications_dao import get_service_ids_with_notifications_on_date -from app.models import NotificationType +from app.enums import NotificationType @notify_celery.task(name="create-nightly-billing") diff --git a/app/celery/research_mode_tasks.py b/app/celery/research_mode_tasks.py index c662da851..58f34c6a6 100644 --- a/app/celery/research_mode_tasks.py +++ b/app/celery/research_mode_tasks.py @@ -6,7 +6,7 @@ from requests import HTTPError, request from app.celery.process_ses_receipts_tasks import process_ses_results from app.config import QueueNames from app.dao.notifications_dao import get_notification_by_id -from app.models import NotificationType +from app.enums import NotificationType temp_fail = "2028675303" perm_fail = "2028675302" diff --git a/app/celery/scheduled_tasks.py b/app/celery/scheduled_tasks.py index 314e1f310..fb0f39caa 100644 --- a/app/celery/scheduled_tasks.py +++ b/app/celery/scheduled_tasks.py @@ -34,13 +34,8 @@ from app.dao.services_dao import ( ) from app.dao.users_dao import delete_codes_older_created_more_than_a_day_ago from app.delivery.send_to_providers import provider_to_use -from app.models import ( - JOB_STATUS_ERROR, - JOB_STATUS_IN_PROGRESS, - JOB_STATUS_PENDING, - Job, - NotificationType, -) +from app.enums import NotificationType +from app.models import JOB_STATUS_ERROR, JOB_STATUS_IN_PROGRESS, JOB_STATUS_PENDING, Job from app.notifications.process_notifications import send_notification_to_queue MAX_NOTIFICATION_FAILS = 10000 diff --git a/app/celery/tasks.py b/app/celery/tasks.py index 4b7d5ccac..34b1f13e0 100644 --- a/app/celery/tasks.py +++ b/app/celery/tasks.py @@ -20,13 +20,13 @@ from app.dao.service_email_reply_to_dao import dao_get_reply_to_by_id from app.dao.service_inbound_api_dao import get_service_inbound_api_for_service from app.dao.service_sms_sender_dao import dao_get_service_sms_senders_by_id from app.dao.templates_dao import dao_get_template_by_id +from app.enums import NotificationType from app.models import ( JOB_STATUS_CANCELLED, JOB_STATUS_FINISHED, JOB_STATUS_IN_PROGRESS, JOB_STATUS_PENDING, KEY_TYPE_NORMAL, - NotificationType, ) from app.notifications.process_notifications import persist_notification from app.notifications.validators import check_service_over_total_message_limit diff --git a/app/celery/test_key_tasks.py b/app/celery/test_key_tasks.py index a7fdda110..f18976a5f 100644 --- a/app/celery/test_key_tasks.py +++ b/app/celery/test_key_tasks.py @@ -6,7 +6,7 @@ from requests import HTTPError, request from app.celery.process_ses_receipts_tasks import process_ses_results from app.config import QueueNames from app.dao.notifications_dao import get_notification_by_id -from app.models import NotificationType +from app.enums import NotificationType temp_fail = "2028675303" perm_fail = "2028675302" diff --git a/app/clients/__init__.py b/app/clients/__init__.py index 70449b45d..66e014354 100644 --- a/app/clients/__init__.py +++ b/app/clients/__init__.py @@ -1,9 +1,10 @@ from abc import abstractmethod from typing import Protocol -from app.models import NotificationType from botocore.config import Config +from app.enums import NotificationType + AWS_CLIENT_CONFIG = Config( # This config is required to enable S3 to connect to FIPS-enabled # endpoints. See https://aws.amazon.com/compliance/fips/ for more @@ -54,7 +55,10 @@ class NotificationProviderClients(object): return self.email_clients.get(name) def get_client_by_name_and_type(self, name, notification_type): - assert notification_type in {NotificationType.EMAIL, NotificationType.SMS} # nosec B101 + assert notification_type in { + NotificationType.EMAIL, + NotificationType.SMS, + } # nosec B101 if notification_type == NotificationType.EMAIL: return self.get_email_client(name) diff --git a/app/commands.py b/app/commands.py index 4d084e845..7541766af 100644 --- a/app/commands.py +++ b/app/commands.py @@ -49,6 +49,7 @@ from app.dao.users_dao import ( delete_user_verify_codes, get_user_by_email, ) +from app.enums import NotificationType from app.models import ( KEY_TYPE_TEST, NOTIFICATION_CREATED, @@ -56,7 +57,6 @@ from app.models import ( Domain, EmailBranding, Notification, - NotificationType, Organization, Service, Template, diff --git a/app/dao/fact_billing_dao.py b/app/dao/fact_billing_dao.py index 06b537643..696022619 100644 --- a/app/dao/fact_billing_dao.py +++ b/app/dao/fact_billing_dao.py @@ -8,6 +8,7 @@ from sqlalchemy.sql.expression import case, literal from app import db from app.dao.date_util import get_calendar_year_dates, get_calendar_year_for_datetime from app.dao.organization_dao import dao_get_organization_live_services +from app.enums import NotificationType from app.models import ( KEY_TYPE_NORMAL, KEY_TYPE_TEAM, @@ -17,7 +18,6 @@ from app.models import ( FactBilling, NotificationAllTimeView, NotificationHistory, - NotificationType, Organization, Rate, Service, diff --git a/app/dao/fact_notification_status_dao.py b/app/dao/fact_notification_status_dao.py index 68284436b..c6c6b06dd 100644 --- a/app/dao/fact_notification_status_dao.py +++ b/app/dao/fact_notification_status_dao.py @@ -7,6 +7,7 @@ from sqlalchemy.types import DateTime, Integer from app import db from app.dao.dao_utils import autocommit +from app.enums import NotificationType from app.models import ( KEY_TYPE_NORMAL, KEY_TYPE_TEAM, @@ -23,7 +24,6 @@ from app.models import ( NOTIFICATION_TEMPORARY_FAILURE, FactNotificationStatus, Notification, - NotificationType, NotificationAllTimeView, Service, Template, @@ -468,7 +468,8 @@ def get_total_notifications_for_date_range(start_date, end_date): case( [ ( - FactNotificationStatus.notification_type == NotificationType.EMAIL, + FactNotificationStatus.notification_type + == NotificationType.EMAIL, FactNotificationStatus.notification_count, ) ], @@ -479,7 +480,8 @@ def get_total_notifications_for_date_range(start_date, end_date): case( [ ( - FactNotificationStatus.notification_type == NotificationType.SMS, + FactNotificationStatus.notification_type + == NotificationType.SMS, FactNotificationStatus.notification_count, ) ], diff --git a/app/dao/inbound_sms_dao.py b/app/dao/inbound_sms_dao.py index 5143746d9..9b33ff0c8 100644 --- a/app/dao/inbound_sms_dao.py +++ b/app/dao/inbound_sms_dao.py @@ -5,13 +5,8 @@ from sqlalchemy.orm import aliased from app import db from app.dao.dao_utils import autocommit -from app.models import ( - InboundSms, - InboundSmsHistory, - NotificationType, - Service, - ServiceDataRetention, -) +from app.enums import NotificationType +from app.models import InboundSms, InboundSmsHistory, Service, ServiceDataRetention from app.utils import midnight_n_days_ago diff --git a/app/dao/notifications_dao.py b/app/dao/notifications_dao.py index 42ac8671c..a144ee7cc 100644 --- a/app/dao/notifications_dao.py +++ b/app/dao/notifications_dao.py @@ -16,6 +16,7 @@ from werkzeug.datastructures import MultiDict from app import create_uuid, db from app.dao.dao_utils import autocommit +from app.enums import NotificationType from app.models import ( KEY_TYPE_TEST, NOTIFICATION_CREATED, @@ -29,7 +30,6 @@ from app.models import ( FactNotificationStatus, Notification, NotificationHistory, - NotificationType, ) from app.utils import ( escape_special_characters, diff --git a/app/dao/provider_details_dao.py b/app/dao/provider_details_dao.py index d98aadcd2..0cb22adcd 100644 --- a/app/dao/provider_details_dao.py +++ b/app/dao/provider_details_dao.py @@ -5,13 +5,8 @@ from sqlalchemy import asc, desc, func from app import db from app.dao.dao_utils import autocommit -from app.models import ( - FactBilling, - NotificationType, - ProviderDetails, - ProviderDetailsHistory, - User, -) +from app.enums import NotificationType +from app.models import FactBilling, ProviderDetails, ProviderDetailsHistory, User def get_provider_details_by_id(provider_details_id): @@ -62,7 +57,8 @@ def _get_sms_providers_for_update(time_threshold): # get current priority of both providers q = ( ProviderDetails.query.filter( - ProviderDetails.notification_type == NotificationType.SMS, ProviderDetails.active + ProviderDetails.notification_type == NotificationType.SMS, + ProviderDetails.active, ) .with_for_update() .all() diff --git a/app/dao/services_dao.py b/app/dao/services_dao.py index 07ba4b1e0..e9f346735 100644 --- a/app/dao/services_dao.py +++ b/app/dao/services_dao.py @@ -13,6 +13,7 @@ from app.dao.organization_dao import dao_get_organization_by_email_address from app.dao.service_sms_sender_dao import insert_service_sms_sender from app.dao.service_user_dao import dao_get_service_user from app.dao.template_folder_dao import dao_get_valid_template_folders_by_id +from app.enums import NotificationType from app.models import ( KEY_TYPE_TEST, NOTIFICATION_PERMANENT_FAILURE, @@ -24,7 +25,6 @@ from app.models import ( Job, Notification, NotificationHistory, - NotificationType, Organization, Permission, Service, @@ -106,7 +106,8 @@ def dao_fetch_live_services_data(): case( [ ( - this_year_ft_billing.c.notification_type == NotificationType.EMAIL, + this_year_ft_billing.c.notification_type + == NotificationType.EMAIL, func.sum(this_year_ft_billing.c.notifications_sent), ) ], @@ -115,7 +116,8 @@ def dao_fetch_live_services_data(): case( [ ( - this_year_ft_billing.c.notification_type == NotificationType.SMS, + this_year_ft_billing.c.notification_type + == NotificationType.SMS, func.sum(this_year_ft_billing.c.notifications_sent), ) ], diff --git a/app/dao/uploads_dao.py b/app/dao/uploads_dao.py index 200d41805..1f1c5138b 100644 --- a/app/dao/uploads_dao.py +++ b/app/dao/uploads_dao.py @@ -5,13 +5,13 @@ from flask import current_app from sqlalchemy import String, and_, desc, func, literal, text from app import db +from app.enums import NotificationType from app.models import ( JOB_STATUS_CANCELLED, JOB_STATUS_SCHEDULED, NOTIFICATION_CANCELLED, Job, Notification, - NotificationType, ServiceDataRetention, Template, ) diff --git a/app/delivery/send_to_providers.py b/app/delivery/send_to_providers.py index 49c98b50a..be9d295da 100644 --- a/app/delivery/send_to_providers.py +++ b/app/delivery/send_to_providers.py @@ -15,6 +15,7 @@ from app.celery.test_key_tasks import send_email_response, send_sms_response from app.dao.email_branding_dao import dao_get_email_branding_by_id from app.dao.notifications_dao import dao_update_notification from app.dao.provider_details_dao import get_provider_details_by_notification_type +from app.enums import NotificationType from app.exceptions import NotificationTechnicalFailureException from app.models import ( BRANDING_BOTH, @@ -23,7 +24,6 @@ from app.models import ( NOTIFICATION_SENDING, NOTIFICATION_STATUS_TYPES_COMPLETED, NOTIFICATION_TECHNICAL_FAILURE, - NotificationType, ) from app.serialised_models import SerialisedService, SerialisedTemplate diff --git a/app/enums.py b/app/enums.py new file mode 100644 index 000000000..3a6ce9355 --- /dev/null +++ b/app/enums.py @@ -0,0 +1,69 @@ +from enum import Enum + + +class TemplateType(Enum): + SMS = "sms" + EMAIL = "email" + LETTER = "letter" + + +class NotificationType(Enum): + SMS = "sms" + EMAIL = "email" + LETTER = "letter" + + +class UserAuthType(Enum): + SMS = "sms_auth" + EMAIL = "email_auth" + WEBAUTHN = "webauthn_auth" + + +class ServiceCallbackType(Enum): + # TODO: Should ServiceCallbackApi.callback_type be changed to use this? + DELIVERY_STATUS = "delivery_status" + COMPLAINT = "complaint" + + +class ServicePermissionType(Enum): + EMAIL = "email" + SMS = "sms" + INTERNATIONAL_SMS = "international_sms" + INBOUND_SMS = "inbound_sms" + SCHEDULE_NOTIFICATIONS = "schedule_notifications" + EMAIL_AUTH = "email_auth" + UPLOAD_DOCUMENT = "upload_document" + EDIT_FOLDER_PERMISSIONS = "edit_folder_permissions" + + +class GuestListRecipientType(Enum): + MOBILE = "mobile" + EMAIL = "email" + + +class KeyType(Enum): + NORMAL = "normal" + TEAM = "team" + TEST = "test" + + +class JobStatusType(Enum): + PENDING = "pending" + IN_PROGRESS = "in progress" + FINISHED = "finished" + SENDING_LIMITS_EXCEEDED = "sending limits exceeded" + SCHEDULED = "scheduled" + CANCELLED = "cancelled" + READY_TO_SEND = "ready to send" + SENT_TO_DVLA = "sent to dvla" + ERROR = "error" + + +class AgreementType(Enum): + MOU = "MOU" + IAA = "IAA" + + +class AgreementStatus(Enum): + ACTIVE = "active" + EXPIRED = "expired" diff --git a/app/inbound_sms/rest.py b/app/inbound_sms/rest.py index 2a6f16277..7f8742a16 100644 --- a/app/inbound_sms/rest.py +++ b/app/inbound_sms/rest.py @@ -9,9 +9,9 @@ from app.dao.inbound_sms_dao import ( from app.dao.service_data_retention_dao import ( fetch_service_data_retention_by_notification_type, ) +from app.enums import NotificationType from app.errors import register_errors from app.inbound_sms.inbound_sms_schemas import get_inbound_sms_for_service_schema -from app.models import NotificationType from app.schema_validation import validate inbound_sms = Blueprint( diff --git a/app/models.py b/app/models.py index a656a926c..90dea83a6 100644 --- a/app/models.py +++ b/app/models.py @@ -21,6 +21,13 @@ from sqlalchemy.orm import validates from sqlalchemy.orm.collections import attribute_mapped_collection from app import db, encryption +from app.enums import ( # JobStatusType,; KeyType,; ServicePermissionType,; UserAuthType, + AgreementStatus, + AgreementType, + GuestListRecipientType, + NotificationType, + TemplateType, +) from app.hashing import check_hash, hashpw from app.history_meta import Versioned from app.utils import ( @@ -29,19 +36,6 @@ from app.utils import ( get_dt_string_or_none, ) - -class TemplateType(Enum): - SMS = "sms" - EMAIL = "email" - LETTER = "letter" - - -class NotificationType(Enum): - SMS = "sms" - EMAIL = "email" - LETTER = "letter" - - NORMAL = "normal" PRIORITY = "priority" TEMPLATE_PROCESS_TYPE = [NORMAL, PRIORITY] @@ -53,28 +47,18 @@ class TemplateProcessType(Enum): PRIORITY = "priority" +# TODO: Change this SMS_AUTH_TYPE = "sms_auth" EMAIL_AUTH_TYPE = "email_auth" WEBAUTHN_AUTH_TYPE = "webauthn_auth" USER_AUTH_TYPES = [SMS_AUTH_TYPE, EMAIL_AUTH_TYPE, WEBAUTHN_AUTH_TYPE] -class UserAuthType(Enum): - # TODO: Should User.auth_type be changed to use this? - SMS = "sms_auth" - EMAIL = "email_auth" - WEBAUTHN = "webauthn_auth" - - +# TODO: Change this DELIVERY_STATUS_CALLBACK_TYPE = "delivery_status" COMPLAINT_CALLBACK_TYPE = "complaint" SERVICE_CALLBACK_TYPES = [DELIVERY_STATUS_CALLBACK_TYPE, COMPLAINT_CALLBACK_TYPE] - - -# class ServiceCallbackType(Enum): -# # TODO: Should ServiceCallbackApi.callback_type be changed to use this? -# DELIVERY_STATUS = "delivery_status" -# COMPLAINT = "complaint" +# Need to import ServiceCallbackType from app.enums def filter_null_value_fields(obj): @@ -290,6 +274,7 @@ user_folder_permissions = db.Table( ) +# TODO: Change this BRANDING_GOVUK = "govuk" # Deprecated outside migrations BRANDING_ORG = "org" BRANDING_BOTH = "both" @@ -358,17 +343,7 @@ service_email_branding = db.Table( ) -class ServicePermissionType(Enum): - EMAIL = "email" - SMS = "sms" - INTERNATIONAL_SMS = "international_sms" - INBOUND_SMS = "inbound_sms" - SCHEDULE_NOTIFICATIONS = "schedule_notifications" - EMAIL_AUTH = "email_auth" - UPLOAD_DOCUMENT = "upload_document" - EDIT_FOLDER_PERMISSIONS = "edit_folder_permissions" - - +# TODO: This need to be changed class ServicePermissionTypes(db.Model): __tablename__ = "service_permission_types" @@ -386,6 +361,7 @@ class Domain(db.Model): ) +# TODO: Change this ORGANIZATION_TYPES = ["federal", "state", "other"] @@ -811,15 +787,6 @@ class ServicePermission(db.Model): ) -# MOBILE_TYPE = "mobile" -# EMAIL_TYPE = "email" - - -class GuestListRecipientType(Enum): - MOBILE = "mobile" - EMAIL = "email" - - guest_list_recipient_types = db.Enum(GuestListRecipientType, name="recipient_type") @@ -1007,18 +974,12 @@ class ApiKey(db.Model, Versioned): self._secret = encryption.encrypt(str(secret)) +# TODO: This needs to be changed KEY_TYPE_NORMAL = "normal" KEY_TYPE_TEAM = "team" KEY_TYPE_TEST = "test" -class KeyType(Enum): - # TODO: Should Key Types be rewritten to use this? - NORMAL = "normal" - TEAM = "team" - TEST = "test" - - class KeyTypes(db.Model): __tablename__ = "key_types" @@ -1373,19 +1334,6 @@ JOB_STATUS_TYPES = [ ] -class JobStatusType(Enum): - # TODO: Should Job.job_status be changed to use this? - PENDING = "pending" - IN_PROGRESS = "in progress" - FINISHED = "finished" - SENDING_LIMITS_EXCEEDED = "sending limits exceeded" - SCHEDULED = "scheduled" - CANCELLED = "cancelled" - READY_TO_SEND = "ready to send" - SENT_TO_DVLA = "sent to dvla" - ERROR = "error" - - class JobStatus(db.Model): __tablename__ = "job_status" @@ -1986,6 +1934,7 @@ INVITED_USER_STATUS_TYPES = [ INVITE_CANCELLED, INVITE_EXPIRED, ] +# TODO: Change these class InviteStatusType(db.Model): @@ -2091,6 +2040,7 @@ PERMISSION_LIST = [ PLATFORM_ADMIN, VIEW_ACTIVITY, ] +# TODO: Change These class Permission(db.Model): @@ -2442,16 +2392,6 @@ class WebauthnCredential(db.Model): } -class AgreementType(Enum): - MOU = "MOU" - IAA = "IAA" - - -class AgreementStatus(Enum): - ACTIVE = "active" - EXPIRED = "expired" - - class Agreement(db.Model): __tablename__ = "agreements" id = db.Column( diff --git a/app/notifications/process_notifications.py b/app/notifications/process_notifications.py index 24a24bc8d..b9474508f 100644 --- a/app/notifications/process_notifications.py +++ b/app/notifications/process_notifications.py @@ -16,12 +16,8 @@ from app.dao.notifications_dao import ( dao_create_notification, dao_delete_notifications_by_id, ) -from app.models import ( - KEY_TYPE_TEST, - NOTIFICATION_CREATED, - Notification, - NotificationType, -) +from app.enums import NotificationType +from app.models import KEY_TYPE_TEST, NOTIFICATION_CREATED, Notification from app.v2.errors import BadRequestError diff --git a/app/notifications/rest.py b/app/notifications/rest.py index b1ea4e837..0d0b70db7 100644 --- a/app/notifications/rest.py +++ b/app/notifications/rest.py @@ -4,8 +4,9 @@ from notifications_utils import SMS_CHAR_COUNT_LIMIT from app import api_user, authenticated_service from app.config import QueueNames from app.dao import notifications_dao +from app.enums import NotificationType from app.errors import InvalidRequest, register_errors -from app.models import KEY_TYPE_TEAM, PRIORITY, NotificationType +from app.models import KEY_TYPE_TEAM, PRIORITY from app.notifications.process_notifications import ( persist_notification, send_notification_to_queue, diff --git a/app/notifications/validators.py b/app/notifications/validators.py index 6e65f6658..20bd2bc07 100644 --- a/app/notifications/validators.py +++ b/app/notifications/validators.py @@ -15,14 +15,8 @@ from app import redis_store from app.dao.notifications_dao import dao_get_notification_count_for_service from app.dao.service_email_reply_to_dao import dao_get_reply_to_by_id from app.dao.service_sms_sender_dao import dao_get_service_sms_senders_by_id -from app.models import ( - KEY_TYPE_TEAM, - KEY_TYPE_TEST, - NotificationType, - ServicePermission, - ServicePermissionType, - TemplateType, -) +from app.enums import NotificationType, ServicePermissionType, TemplateType +from app.models import KEY_TYPE_TEAM, KEY_TYPE_TEST, ServicePermission from app.notifications.process_notifications import create_content_for_notification from app.serialised_models import SerialisedTemplate from app.service.utils import service_allowed_to_send_to diff --git a/app/organization/invite_rest.py b/app/organization/invite_rest.py index 69587ea3e..2de961e43 100644 --- a/app/organization/invite_rest.py +++ b/app/organization/invite_rest.py @@ -12,8 +12,9 @@ from app.dao.invited_org_user_dao import ( save_invited_org_user, ) from app.dao.templates_dao import dao_get_template_by_id +from app.enums import NotificationType from app.errors import InvalidRequest, register_errors -from app.models import KEY_TYPE_NORMAL, InvitedOrganizationUser, NotificationType +from app.models import KEY_TYPE_NORMAL, InvitedOrganizationUser from app.notifications.process_notifications import ( persist_notification, send_notification_to_queue, diff --git a/app/performance_platform/total_sent_notifications.py b/app/performance_platform/total_sent_notifications.py index 514d32096..3d8806b7b 100644 --- a/app/performance_platform/total_sent_notifications.py +++ b/app/performance_platform/total_sent_notifications.py @@ -2,7 +2,7 @@ from app import performance_platform_client from app.dao.fact_notification_status_dao import ( get_total_sent_notifications_for_day_and_type, ) -from app.models import NotificationType +from app.enums import NotificationType # TODO: is this obsolete? it doesn't seem to be used anywhere @@ -20,7 +20,9 @@ def send_total_notifications_sent_for_day_stats(start_time, notification_type, c # TODO: is this obsolete? it doesn't seem to be used anywhere def get_total_sent_notifications_for_day(day): - email_count = get_total_sent_notifications_for_day_and_type(day, NotificationType.EMAIL) + email_count = get_total_sent_notifications_for_day_and_type( + day, NotificationType.EMAIL + ) sms_count = get_total_sent_notifications_for_day_and_type(day, NotificationType.SMS) return { diff --git a/app/service/send_notification.py b/app/service/send_notification.py index f1da3ac67..8f767e36a 100644 --- a/app/service/send_notification.py +++ b/app/service/send_notification.py @@ -6,7 +6,8 @@ from app.dao.service_sms_sender_dao import dao_get_service_sms_senders_by_id from app.dao.services_dao import dao_fetch_service_by_id from app.dao.templates_dao import dao_get_template_by_id_and_service_id from app.dao.users_dao import get_user_by_id -from app.models import KEY_TYPE_NORMAL, PRIORITY, NotificationType +from app.enums import NotificationType +from app.models import KEY_TYPE_NORMAL, PRIORITY from app.notifications.process_notifications import ( persist_notification, send_notification_to_queue, diff --git a/app/service/service_data_retention_schema.py b/app/service/service_data_retention_schema.py index 7490519f5..da732c284 100644 --- a/app/service/service_data_retention_schema.py +++ b/app/service/service_data_retention_schema.py @@ -1,4 +1,4 @@ -from app.models import NotificationType +from app.enums import NotificationType add_service_data_retention_request = { "$schema": "http://json-schema.org/draft-07/schema#", @@ -7,7 +7,9 @@ add_service_data_retention_request = { "type": "object", "properties": { "days_of_retention": {"type": "integer"}, - "notification_type": {"enum": [NotificationType.SMS.value, NotificationType.EMAIL.value]}, + "notification_type": { + "enum": [NotificationType.SMS.value, NotificationType.EMAIL.value] + }, }, "required": ["days_of_retention", "notification_type"], } diff --git a/app/service_invite/rest.py b/app/service_invite/rest.py index f7e32339d..9c4dcc972 100644 --- a/app/service_invite/rest.py +++ b/app/service_invite/rest.py @@ -14,8 +14,9 @@ from app.dao.invited_user_dao import ( save_invited_user, ) from app.dao.templates_dao import dao_get_template_by_id +from app.enums import NotificationType from app.errors import InvalidRequest, register_errors -from app.models import INVITE_PENDING, KEY_TYPE_NORMAL, NotificationType, Service +from app.models import INVITE_PENDING, KEY_TYPE_NORMAL, Service from app.notifications.process_notifications import ( persist_notification, send_notification_to_queue, diff --git a/app/user/rest.py b/app/user/rest.py index d8b455d4c..3ac1b1d18 100644 --- a/app/user/rest.py +++ b/app/user/rest.py @@ -32,15 +32,9 @@ from app.dao.users_dao import ( update_user_password, use_user_code, ) +from app.enums import NotificationType, TemplateType, VerifyCodeType from app.errors import InvalidRequest, register_errors -from app.models import ( - KEY_TYPE_NORMAL, - NotificationType, - Permission, - Service, - TemplateType, - VerifyCodeType, -) +from app.models import KEY_TYPE_NORMAL, Permission, Service from app.notifications.process_notifications import ( persist_notification, send_notification_to_queue, diff --git a/app/utils.py b/app/utils.py index eea303250..fd2f0a393 100644 --- a/app/utils.py +++ b/app/utils.py @@ -78,7 +78,8 @@ def get_month_from_utc_column(column): def get_public_notify_type_text(notify_type, plural=False): - from app.models import UPLOAD_DOCUMENT, NotificationType + from app.enums import NotificationType + from app.models import UPLOAD_DOCUMENT notify_type_text = notify_type if notify_type == NotificationType.SMS: diff --git a/app/v2/notifications/post_notifications.py b/app/v2/notifications/post_notifications.py index 1af6e1068..0226eb911 100644 --- a/app/v2/notifications/post_notifications.py +++ b/app/v2/notifications/post_notifications.py @@ -10,13 +10,8 @@ from app import api_user, authenticated_service, document_download_client, encry from app.celery.tasks import save_api_email, save_api_sms from app.clients.document_download import DocumentDownloadError from app.config import QueueNames -from app.models import ( - KEY_TYPE_NORMAL, - NOTIFICATION_CREATED, - PRIORITY, - Notification, - NotificationType, -) +from app.enums import NotificationType +from app.models import KEY_TYPE_NORMAL, NOTIFICATION_CREATED, PRIORITY, Notification from app.notifications.process_notifications import ( persist_notification, send_notification_to_queue_detached,