Make created_at a property of contact lists

The view layer shouldn’t be having to deal with converting dates as
strings. This is an artefact of how we send data from the API to the
admin app. The model layer should be responsible for turning JSON into
richer types, where it can.
This commit is contained in:
Chris Hill-Scott
2020-05-12 17:08:13 +01:00
parent fc1ca3ab2f
commit 236ddf053d
2 changed files with 14 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ from os import path
from flask import abort, current_app
from notifications_utils.formatters import strip_whitespace
from notifications_utils.recipients import RecipientCSV
from notifications_utils.timezones import utc_string_to_aware_gmt_datetime
from werkzeug.utils import cached_property
from app.models import JSONModel, ModelList
@@ -21,7 +22,6 @@ class ContactList(JSONModel):
ALLOWED_PROPERTIES = {
'id',
'created_at',
'created_by',
'service_id',
'original_file_name',
@@ -112,6 +112,10 @@ class ContactList(JSONModel):
contact_list_id=self.id,
)
@property
def created_at(self):
return utc_string_to_aware_gmt_datetime(self._dict['created_at'])
@property
def contents(self):
return self.download(self.service_id, self.id)

View File

@@ -0,0 +1,9 @@
from datetime import datetime
from app.models.contact_list import ContactList
def test_created_at():
created_at = ContactList({'created_at': '2016-05-06T07:08:09.061258'}).created_at
assert isinstance(created_at, datetime)
assert created_at.isoformat() == '2016-05-06T08:08:09.061258+01:00'