mirror of
https://github.com/GSA/notifications-api.git
synced 2026-09-10 10:03:38 -04:00
Add column, free_sms_fragment_limit, to services & services_history
- Created new column in both tables - Modified model and Service schema - Modifed existing test
This commit is contained in:
@@ -211,6 +211,7 @@ class Service(db.Model, Versioned):
|
|||||||
_letter_contact_block = db.Column('letter_contact_block', db.Text, index=False, unique=False, nullable=True)
|
_letter_contact_block = db.Column('letter_contact_block', db.Text, index=False, unique=False, nullable=True)
|
||||||
sms_sender = db.Column(db.String(11), nullable=False, default=lambda: current_app.config['FROM_NUMBER'])
|
sms_sender = db.Column(db.String(11), nullable=False, default=lambda: current_app.config['FROM_NUMBER'])
|
||||||
organisation_id = db.Column(UUID(as_uuid=True), db.ForeignKey('organisation.id'), index=True, nullable=True)
|
organisation_id = db.Column(UUID(as_uuid=True), db.ForeignKey('organisation.id'), index=True, nullable=True)
|
||||||
|
free_sms_fragment_limit = db.Column(db.BigInteger, index=False, unique=False, nullable=True)
|
||||||
organisation = db.relationship('Organisation')
|
organisation = db.relationship('Organisation')
|
||||||
dvla_organisation_id = db.Column(
|
dvla_organisation_id = db.Column(
|
||||||
db.String,
|
db.String,
|
||||||
@@ -230,10 +231,6 @@ class Service(db.Model, Versioned):
|
|||||||
|
|
||||||
association_proxy('permissions', 'service_permission_types')
|
association_proxy('permissions', 'service_permission_types')
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def free_sms_fragment_limit():
|
|
||||||
return current_app.config['FREE_SMS_TIER_FRAGMENT_COUNT']
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, data):
|
def from_json(cls, data):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -175,20 +175,17 @@ class ProviderDetailsHistorySchema(BaseSchema):
|
|||||||
|
|
||||||
class ServiceSchema(BaseSchema):
|
class ServiceSchema(BaseSchema):
|
||||||
|
|
||||||
free_sms_fragment_limit = fields.Method(method_name='get_free_sms_fragment_limit')
|
|
||||||
created_by = field_for(models.Service, 'created_by', required=True)
|
created_by = field_for(models.Service, 'created_by', required=True)
|
||||||
organisation = field_for(models.Service, 'organisation')
|
organisation = field_for(models.Service, 'organisation')
|
||||||
branding = field_for(models.Service, 'branding')
|
branding = field_for(models.Service, 'branding')
|
||||||
dvla_organisation = field_for(models.Service, 'dvla_organisation')
|
dvla_organisation = field_for(models.Service, 'dvla_organisation')
|
||||||
|
free_sms_fragment_limit = field_for(models.Service, 'free_sms_fragment_limit')
|
||||||
permissions = fields.Method("service_permissions")
|
permissions = fields.Method("service_permissions")
|
||||||
override_flag = False
|
override_flag = False
|
||||||
reply_to_email_address = fields.Method(method_name="get_reply_to_email_address")
|
reply_to_email_address = fields.Method(method_name="get_reply_to_email_address")
|
||||||
sms_sender = fields.Method(method_name="get_sms_sender")
|
sms_sender = fields.Method(method_name="get_sms_sender")
|
||||||
letter_contact_block = fields.Method(method_name="get_letter_contact")
|
letter_contact_block = fields.Method(method_name="get_letter_contact")
|
||||||
|
|
||||||
def get_free_sms_fragment_limit(selfs, service):
|
|
||||||
return service.free_sms_fragment_limit()
|
|
||||||
|
|
||||||
def service_permissions(self, service):
|
def service_permissions(self, service):
|
||||||
return [p.permission for p in service.permissions]
|
return [p.permission for p in service.permissions]
|
||||||
|
|
||||||
@@ -203,7 +200,7 @@ class ServiceSchema(BaseSchema):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Service
|
model = models.Service
|
||||||
dump_only = ['free_sms_fragment_limit', 'reply_to_email_address', 'letter_contact_block']
|
dump_only = ['reply_to_email_address', 'letter_contact_block']
|
||||||
exclude = (
|
exclude = (
|
||||||
'updated_at',
|
'updated_at',
|
||||||
'created_at',
|
'created_at',
|
||||||
@@ -252,11 +249,6 @@ class ServiceSchema(BaseSchema):
|
|||||||
class DetailedServiceSchema(BaseSchema):
|
class DetailedServiceSchema(BaseSchema):
|
||||||
statistics = fields.Dict()
|
statistics = fields.Dict()
|
||||||
|
|
||||||
free_sms_fragment_limit = fields.Method(method_name='get_free_sms_fragment_limit')
|
|
||||||
|
|
||||||
def get_free_sms_fragment_limit(selfs, service):
|
|
||||||
return service.free_sms_fragment_limit()
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Service
|
model = models.Service
|
||||||
exclude = (
|
exclude = (
|
||||||
|
|||||||
23
migrations/versions/0124_add_free_sms_fragment_limit.py
Normal file
23
migrations/versions/0124_add_free_sms_fragment_limit.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Revision ID: 0124_add_free_sms_fragment_limit
|
||||||
|
Revises: 0123_add_noti_to_email_reply
|
||||||
|
Create Date: 2017-10-10 11:30:16.225980
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
revision = '0124_add_free_sms_fragment_limit'
|
||||||
|
down_revision = '0123_add_noti_to_email_reply'
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
op.add_column('services_history', sa.Column('free_sms_fragment_limit', sa.BigInteger(), nullable=True))
|
||||||
|
op.add_column('services', sa.Column('free_sms_fragment_limit', sa.BigInteger(), nullable=True))
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.drop_column('services_history', 'free_sms_fragment_limit')
|
||||||
|
op.drop_column('services', 'free_sms_fragment_limit')
|
||||||
@@ -139,6 +139,7 @@ def sample_service(
|
|||||||
email_from=None,
|
email_from=None,
|
||||||
permissions=[SMS_TYPE, EMAIL_TYPE],
|
permissions=[SMS_TYPE, EMAIL_TYPE],
|
||||||
research_mode=None,
|
research_mode=None,
|
||||||
|
free_sms_fragment_limit=250000
|
||||||
):
|
):
|
||||||
if user is None:
|
if user is None:
|
||||||
user = create_user()
|
user = create_user()
|
||||||
@@ -150,7 +151,8 @@ def sample_service(
|
|||||||
'message_limit': limit,
|
'message_limit': limit,
|
||||||
'restricted': restricted,
|
'restricted': restricted,
|
||||||
'email_from': email_from,
|
'email_from': email_from,
|
||||||
'created_by': user
|
'created_by': user,
|
||||||
|
'free_sms_fragment_limit': free_sms_fragment_limit
|
||||||
}
|
}
|
||||||
service = Service.query.filter_by(name=service_name).first()
|
service = Service.query.filter_by(name=service_name).first()
|
||||||
if not service:
|
if not service:
|
||||||
|
|||||||
Reference in New Issue
Block a user