mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-27 19:29:24 -04:00
remove service letter contact model
This commit is contained in:
@@ -32,7 +32,6 @@ from app.models import (
|
||||
Service,
|
||||
ServiceContactList,
|
||||
ServiceEmailReplyTo,
|
||||
ServiceLetterContact,
|
||||
ServicePermission,
|
||||
ServiceSmsSender,
|
||||
Template,
|
||||
@@ -369,7 +368,6 @@ def delete_service_and_all_associated_db_objects(service):
|
||||
|
||||
_delete_commit(ServiceSmsSender.query.filter_by(service=service))
|
||||
_delete_commit(ServiceEmailReplyTo.query.filter_by(service=service))
|
||||
_delete_commit(ServiceLetterContact.query.filter_by(service=service))
|
||||
_delete_commit(ServiceContactList.query.filter_by(service=service))
|
||||
_delete_commit(InvitedUser.query.filter_by(service=service))
|
||||
_delete_commit(Permission.query.filter_by(service=service))
|
||||
|
||||
@@ -38,36 +38,6 @@ def dao_update_template(template):
|
||||
db.session.add(template)
|
||||
|
||||
|
||||
@autocommit
|
||||
def dao_update_template_reply_to(template_id, reply_to):
|
||||
Template.query.filter_by(id=template_id).update(
|
||||
{"service_letter_contact_id": reply_to,
|
||||
"updated_at": datetime.utcnow(),
|
||||
"version": Template.version + 1,
|
||||
}
|
||||
)
|
||||
template = Template.query.filter_by(id=template_id).one()
|
||||
|
||||
history = TemplateHistory(**
|
||||
{
|
||||
"id": template.id,
|
||||
"name": template.name,
|
||||
"template_type": template.template_type,
|
||||
"created_at": template.created_at,
|
||||
"updated_at": template.updated_at,
|
||||
"content": template.content,
|
||||
"service_id": template.service_id,
|
||||
"subject": template.subject,
|
||||
"created_by_id": template.created_by_id,
|
||||
"version": template.version,
|
||||
"archived": template.archived,
|
||||
"process_type": template.process_type,
|
||||
"service_letter_contact_id": template.service_letter_contact_id,
|
||||
})
|
||||
db.session.add(history)
|
||||
return template
|
||||
|
||||
|
||||
@autocommit
|
||||
def dao_redact_template(template, user_id):
|
||||
template.template_redacted.redact_personalisation = True
|
||||
|
||||
@@ -512,10 +512,6 @@ class Service(db.Model, Versioned):
|
||||
default_reply_to = [x for x in self.reply_to_email_addresses if x.is_default]
|
||||
return default_reply_to[0].email_address if default_reply_to else None
|
||||
|
||||
def get_default_letter_contact(self):
|
||||
default_letter_contact = [x for x in self.letter_contacts if x.is_default]
|
||||
return default_letter_contact[0].contact_block if default_letter_contact else None
|
||||
|
||||
def has_permission(self, permission):
|
||||
return permission in [p.permission for p in self.permissions]
|
||||
|
||||
@@ -916,34 +912,20 @@ class TemplateBase(db.Model):
|
||||
|
||||
redact_personalisation = association_proxy('template_redacted', 'redact_personalisation')
|
||||
|
||||
@declared_attr
|
||||
def service_letter_contact_id(cls):
|
||||
return db.Column(UUID(as_uuid=True), db.ForeignKey('service_letter_contacts.id'), nullable=True)
|
||||
|
||||
@declared_attr
|
||||
def service_letter_contact(cls):
|
||||
return db.relationship('ServiceLetterContact', viewonly=True)
|
||||
|
||||
# TODO: possibly unnecessary after removing letters
|
||||
@property
|
||||
def reply_to(self):
|
||||
if self.template_type == LETTER_TYPE:
|
||||
return self.service_letter_contact_id
|
||||
else:
|
||||
return None
|
||||
return None
|
||||
|
||||
@reply_to.setter
|
||||
def reply_to(self, value):
|
||||
if self.template_type == LETTER_TYPE:
|
||||
self.service_letter_contact_id = value
|
||||
elif value is None:
|
||||
if value is None:
|
||||
pass
|
||||
else:
|
||||
raise ValueError('Unable to set sender for {} template'.format(self.template_type))
|
||||
|
||||
def get_reply_to_text(self):
|
||||
if self.template_type == LETTER_TYPE:
|
||||
return self.service_letter_contact.contact_block if self.service_letter_contact else None
|
||||
elif self.template_type == EMAIL_TYPE:
|
||||
if self.template_type == EMAIL_TYPE:
|
||||
return self.service.get_default_reply_to_email_address()
|
||||
elif self.template_type == SMS_TYPE:
|
||||
return try_validate_and_format_phone_number(self.service.get_default_sms_sender())
|
||||
@@ -983,7 +965,6 @@ class TemplateBase(db.Model):
|
||||
}
|
||||
for key in self._as_utils_template().placeholders
|
||||
},
|
||||
"letter_contact_block": self.service_letter_contact.contact_block if self.service_letter_contact else None,
|
||||
}
|
||||
|
||||
return serialized
|
||||
@@ -1924,32 +1905,6 @@ class ServiceEmailReplyTo(db.Model):
|
||||
}
|
||||
|
||||
|
||||
class ServiceLetterContact(db.Model):
|
||||
__tablename__ = "service_letter_contacts"
|
||||
|
||||
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
||||
|
||||
service_id = db.Column(UUID(as_uuid=True), db.ForeignKey('services.id'), unique=False, index=True, nullable=False)
|
||||
service = db.relationship(Service, backref=db.backref("letter_contacts"))
|
||||
|
||||
contact_block = db.Column(db.Text, nullable=False, index=False, unique=False)
|
||||
is_default = db.Column(db.Boolean, nullable=False, default=True)
|
||||
archived = db.Column(db.Boolean, nullable=False, default=False)
|
||||
created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
|
||||
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
|
||||
|
||||
def serialize(self):
|
||||
return {
|
||||
'id': str(self.id),
|
||||
'service_id': str(self.service_id),
|
||||
'contact_block': self.contact_block,
|
||||
'is_default': self.is_default,
|
||||
'archived': self.archived,
|
||||
'created_at': self.created_at.strftime(DATETIME_FORMAT),
|
||||
'updated_at': get_dt_string_or_none(self.updated_at),
|
||||
}
|
||||
|
||||
|
||||
class AuthType(db.Model):
|
||||
__tablename__ = 'auth_type'
|
||||
|
||||
|
||||
@@ -249,9 +249,6 @@ class ServiceSchema(BaseSchema, UUIDsAsStringsMixin):
|
||||
|
||||
return in_data
|
||||
|
||||
def get_letter_contact(self, service):
|
||||
return service.get_default_letter_contact()
|
||||
|
||||
class Meta(BaseSchema.Meta):
|
||||
model = models.Service
|
||||
exclude = (
|
||||
@@ -267,7 +264,6 @@ class ServiceSchema(BaseSchema, UUIDsAsStringsMixin):
|
||||
'inbound_number',
|
||||
'inbound_sms',
|
||||
'jobs',
|
||||
'letter_contacts',
|
||||
'reply_to_email_addresses',
|
||||
'returned_letters',
|
||||
'service_sms_senders',
|
||||
@@ -360,7 +356,7 @@ class BaseTemplateSchema(BaseSchema):
|
||||
|
||||
class Meta(BaseSchema.Meta):
|
||||
model = models.Template
|
||||
exclude = ("service_id", "jobs", "service_letter_contact_id")
|
||||
exclude = ("service_id", "jobs")
|
||||
|
||||
|
||||
class TemplateSchema(BaseTemplateSchema, UUIDsAsStringsMixin):
|
||||
@@ -405,7 +401,6 @@ class TemplateSchemaNoDetail(TemplateSchema):
|
||||
'reply_to',
|
||||
'reply_to_text',
|
||||
'service',
|
||||
'service_letter_contact',
|
||||
'subject',
|
||||
'template_redacted',
|
||||
'updated_at',
|
||||
|
||||
@@ -5,7 +5,7 @@ add_service_data_retention_request = {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"days_of_retention": {"type": "integer"},
|
||||
"notification_type": {"enum": ["sms", "letter", "email"]},
|
||||
"notification_type": {"enum": ["sms", "email"]},
|
||||
},
|
||||
"required": ["days_of_retention", "notification_type"]
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ from app.dao.templates_dao import (
|
||||
dao_get_template_versions,
|
||||
dao_redact_template,
|
||||
dao_update_template,
|
||||
dao_update_template_reply_to,
|
||||
)
|
||||
from app.errors import InvalidRequest, register_errors
|
||||
from app.models import SMS_TYPE, Template
|
||||
@@ -111,11 +110,6 @@ def update_template(service_id, template_id):
|
||||
if data.get('redact_personalisation') is True:
|
||||
return redact_template(fetched_template, data)
|
||||
|
||||
if "reply_to" in data:
|
||||
check_reply_to(service_id, data.get("reply_to"), fetched_template.template_type)
|
||||
updated = dao_update_template_reply_to(template_id=template_id, reply_to=data.get("reply_to"))
|
||||
return jsonify(data=template_schema.dump(updated)), 200
|
||||
|
||||
current_data = dict(template_schema.dump(fetched_template).items())
|
||||
updated_template = dict(template_schema.dump(fetched_template).items())
|
||||
updated_template.update(data)
|
||||
|
||||
Reference in New Issue
Block a user