Files
notifications-api/migrations/versions/0171_add_org_invite_template.py

85 lines
3.3 KiB
Python
Raw Normal View History

2018-02-16 14:42:03 +00:00
"""
2018-02-26 16:48:12 +00:00
Revision ID: 0171_add_org_invite_template
Revises: 0170_hidden_non_nullable
2018-02-16 14:42:03 +00:00
Create Date: 2018-02-16 14:16:43.618062
"""
from datetime import datetime
from alembic import op
from flask import current_app
2023-07-18 08:28:48 -07:00
from sqlalchemy import text
2018-02-16 14:42:03 +00:00
2018-02-26 16:48:12 +00:00
revision = '0171_add_org_invite_template'
down_revision = '0170_hidden_non_nullable'
2018-02-16 14:42:03 +00:00
template_id = '203566f0-d835-47c5-aa06-932439c86573'
def upgrade():
template_insert = """
INSERT INTO templates (id, name, template_type, created_at, content, archived, service_id, subject,
2018-02-26 16:48:12 +00:00
created_by_id, version, process_type, hidden)
2023-07-18 08:28:48 -07:00
VALUES (:template_id, :template_name, :template_type, :time_now, :content, False,
:notify_service_id, :subject, :user_id, 1, :process_type, false)
2018-02-16 14:42:03 +00:00
"""
template_history_insert = """
INSERT INTO templates_history (id, name, template_type, created_at, content, archived, service_id, subject,
2018-02-26 16:48:12 +00:00
created_by_id, version, process_type, hidden)
2023-07-18 08:28:48 -07:00
VALUES (:template_id, :template_name, :template_type, :time_now, :content, False,
:notify_service_id, :subject, :user_id, 1, :process_type, false)
2018-02-16 14:42:03 +00:00
"""
template_content = '\n'.join([
"((user_name)) has invited you to collaborate on ((organisation_name)) on GOV.UK Notify.",
"",
"GOV.UK Notify makes it easy to keep people updated by helping you send text messages, emails and letters.",
"",
"Open this link to create an account on GOV.UK Notify:",
"((url))",
"",
"This invitation will stop working at midnight tomorrow. This is to keep ((organisation_name)) secure.",
])
template_name = "Notify organisation invitation email"
template_subject = '((user_name)) has invited you to collaborate on ((organisation_name)) on GOV.UK Notify'
2023-07-18 08:28:48 -07:00
input_params = {
"template_id": template_id,
"template_name": template_name,
"template_type": 'email',
"time_now": datetime.utcnow(),
"content": template_content,
"notify_service_id": current_app.config['NOTIFY_SERVICE_ID'],
"subject": template_subject,
"user_id": current_app.config['NOTIFY_USER_ID'],
"process_type": 'normal'
}
conn = op.get_bind()
conn.execute(
text(template_history_insert), input_params
2018-02-16 14:42:03 +00:00
)
2023-07-18 08:28:48 -07:00
conn.execute(
text(template_insert), input_params
2018-02-16 14:42:03 +00:00
)
2018-02-16 14:42:03 +00:00
# clean up constraints on org_to_service - service_id-org_id constraint is redundant
op.drop_constraint('organisation_to_service_service_id_organisation_id_key', 'organisation_to_service', type_='unique')
def downgrade():
2023-07-18 08:28:48 -07:00
input_params = {
'template_id': template_id
}
conn = op.get_bind()
conn.execute(text("DELETE FROM notifications WHERE template_id = :template_id"), input_params)
conn.execute(text("DELETE FROM notification_history WHERE template_id = :template_id"), input_params)
conn.execute(text("DELETE FROM template_redacted WHERE template_id = :template_id"), input_params)
conn.execute(text("DELETE FROM templates_history WHERE id = :template_id"), input_params)
conn.execute(text("DELETE FROM templates WHERE id = :template_id"), input_params)
2018-02-16 14:42:03 +00:00
op.create_unique_constraint('organisation_to_service_service_id_organisation_id_key', 'organisation_to_service', ['service_id', 'organisation_id'])