mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
Merge pull request #921 from alphagov/migration-add-intl-notification-fields
Add intl notification fields
This commit is contained in:
@@ -662,6 +662,12 @@ class Notification(db.Model):
|
||||
foreign(template_version) == remote(TemplateHistory.version)
|
||||
))
|
||||
|
||||
client_reference = db.Column(db.String, index=True, nullable=True)
|
||||
|
||||
international = db.Column(db.Boolean, nullable=False, default=False)
|
||||
phone_prefix = db.Column(db.String, nullable=True)
|
||||
rate_multiplier = db.Column(db.Numeric(), nullable=True)
|
||||
|
||||
@property
|
||||
def personalisation(self):
|
||||
if self._personalisation:
|
||||
@@ -835,6 +841,10 @@ class NotificationHistory(db.Model, HistoryModel):
|
||||
reference = db.Column(db.String, nullable=True, index=True)
|
||||
client_reference = db.Column(db.String, nullable=True)
|
||||
|
||||
international = db.Column(db.Boolean, nullable=False, default=False)
|
||||
phone_prefix = db.Column(db.String, nullable=True)
|
||||
rate_multiplier = db.Column(db.Numeric(), nullable=True)
|
||||
|
||||
@classmethod
|
||||
def from_original(cls, notification):
|
||||
history = super().from_original(notification)
|
||||
|
||||
32
migrations/versions/0077_add_intl_notification.py
Normal file
32
migrations/versions/0077_add_intl_notification.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 0077_add_intl_notification
|
||||
Revises: 0076_add_intl_flag_to_provider
|
||||
Create Date: 2017-04-25 11:34:43.229494
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '0077_add_intl_notification'
|
||||
down_revision = '0076_add_intl_flag_to_provider'
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.add_column('notification_history', sa.Column('international', sa.Boolean(), nullable=True))
|
||||
op.add_column('notification_history', sa.Column('phone_prefix', sa.String(), nullable=True))
|
||||
op.add_column('notification_history', sa.Column('rate_multiplier', sa.Numeric(), nullable=True))
|
||||
op.add_column('notifications', sa.Column('international', sa.Boolean(), nullable=True))
|
||||
op.add_column('notifications', sa.Column('phone_prefix', sa.String(), nullable=True))
|
||||
op.add_column('notifications', sa.Column('rate_multiplier', sa.Numeric(), nullable=True))
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_column('notifications', 'rate_multiplier')
|
||||
op.drop_column('notifications', 'phone_prefix')
|
||||
op.drop_column('notifications', 'international')
|
||||
op.drop_column('notification_history', 'rate_multiplier')
|
||||
op.drop_column('notification_history', 'phone_prefix')
|
||||
op.drop_column('notification_history', 'international')
|
||||
@@ -169,18 +169,21 @@ def test_persist_notification_with_optionals(sample_job, sample_api_key, mocker)
|
||||
'app.notifications.process_notifications.redis_store.get_all_from_hash')
|
||||
n_id = uuid.uuid4()
|
||||
created_at = datetime.datetime(2016, 11, 11, 16, 8, 18)
|
||||
persist_notification(template_id=sample_job.template.id,
|
||||
persist_notification(
|
||||
template_id=sample_job.template.id,
|
||||
template_version=sample_job.template.version,
|
||||
recipient='+447111111111',
|
||||
service=sample_job.service,
|
||||
personalisation=None, notification_type='sms',
|
||||
personalisation=None,
|
||||
notification_type='sms',
|
||||
api_key_id=sample_api_key.id,
|
||||
key_type=sample_api_key.key_type,
|
||||
created_at=created_at,
|
||||
job_id=sample_job.id,
|
||||
job_row_number=10,
|
||||
client_reference="ref from client",
|
||||
notification_id=n_id)
|
||||
notification_id=n_id
|
||||
)
|
||||
assert Notification.query.count() == 1
|
||||
assert NotificationHistory.query.count() == 1
|
||||
persisted_notification = Notification.query.all()[0]
|
||||
@@ -192,6 +195,9 @@ def test_persist_notification_with_optionals(sample_job, sample_api_key, mocker)
|
||||
mock_service_template_cache.assert_called_once_with(cache_key_for_service_template_counter(sample_job.service_id))
|
||||
assert persisted_notification.client_reference == "ref from client"
|
||||
assert persisted_notification.reference is None
|
||||
assert persisted_notification.international is False
|
||||
assert persisted_notification.phone_prefix is None
|
||||
assert persisted_notification.rate_multiplier is None
|
||||
|
||||
|
||||
@freeze_time("2016-01-01 11:09:00.061258")
|
||||
|
||||
Reference in New Issue
Block a user