Commit Graph

3343 Commits

Author SHA1 Message Date
Leo Hemsted
57b7cb8d24 Merge pull request #986 from alphagov/create-service-bug
separate service deserialization from validation
2017-05-25 10:52:38 +01:00
Martyn Inglis
2591d3a1df This massive set of changes uses the new queue names object throughout the app and tests.
Lots of changes, all changing the line of code that puts things into queues, and the code that tests that.
2017-05-25 10:51:49 +01:00
Leo Hemsted
4b8b6ca91e add test to ensure that updating other things doesnt affect sms sender 2017-05-25 10:37:17 +01:00
Rebecca Law
9f6c037530 Use iso8601 to validate scheduled_for datetime.
Added a validation method that always fails for scheduled notifications.
Comment out config for scheduled task.
The schedule notifications will be turned on once we can invite services to use it.
Waiting for the service permission story, must commit this in order to keep things from going stale.
2017-05-24 16:27:15 +01:00
Leo Hemsted
554a193cff separate service deserialization from validation
Marshmallow validates and deserialises - BUT, when it deserialises,
it explicitly sets `sms_sender=None`, even when you haven't passed
sms_sender in. This is problematic, because we wanted to take advantage
of sqlalchemy's default value to set sms_sender to `GOVUK` when the
actual DB commit happens.

Instead, still use marshmallow for validating, but manually carry out
the json deserialisation in the model class.

This fixes a bug that only manifested when the database was upgraded,
but the code hadn't updated. 🎉
2017-05-24 16:27:12 +01:00
Rebecca Law
383dee3bb2 Updated the serialization of Notification.scheduled_for to include minutes. 2017-05-24 14:52:32 +01:00
Rebecca Law
96b0e42959 Merge branch 'master' into schedule-api-notification
Conflicts:
	app/celery/scheduled_tasks.py
	tests/app/celery/test_scheduled_tasks.py
2017-05-24 13:21:22 +01:00
minglis
8a2715e3e1 Merge pull request #980 from alphagov/change-delete-jobs-to-delete-by-type
Change delete jobs to delete by type
2017-05-24 12:35:04 +01:00
Martyn Inglis
03346f467f updated cache to store map not single value, to accommodate the billable units and the total cost. 2017-05-24 09:59:37 +01:00
Martyn Inglis
0db8297693 Removed print statement 2017-05-24 09:59:07 +01:00
Martyn Inglis
78a55bafe0 Added new cost field to yearly billable sms endpoint. 2017-05-24 08:57:41 +01:00
Martyn Inglis
9dd6041944 Usage DAO can now return rates and billable amount, alongside units. 2017-05-24 08:56:59 +01:00
Leo Hemsted
e9b1fd4dde Revert "Non null sender" 2017-05-23 16:32:03 +01:00
Leo Hemsted
1cd94e3d3d Merge pull request #977 from alphagov/non-null-sender
Non null sender
2017-05-23 16:08:56 +01:00
Rebecca Law
53efb4e033 Merge branch 'master' into schedule-api-notification
Conflicts:
	tests/app/v2/notifications/test_post_notifications.py
2017-05-23 13:58:50 +01:00
Martyn Inglis
e987668b0c Merge branch 'master' into remove-nasty-query-from-dashboard 2017-05-23 13:55:30 +01:00
Martyn Inglis
a5c71ea907 New task to use the new DAO method to delete the data by type 2017-05-23 13:40:36 +01:00
Martyn Inglis
aaa0f763a1 Updated delete notifications over a week old query
- PREVIOUS
based on status. so as we add new status we have some orphaned rows, as these delete queries would miss them

- NOW
based on type. In effect they do the same thing, deleting emails, sms or letters older than a week old irrespective of status. Can see is iterating on this to have more granularity say for letters, so split up. Also means that the delete action isn't so big, as we half the affected rows, by doing it by type.
2017-05-23 13:40:15 +01:00
Imdad Ahad
d745df3f44 Fix test that doesn't account for notifications being created in a different order 2017-05-23 12:50:26 +01:00
Leo Hemsted
afd748bab2 test no longer applicable as null sms_sender is an error now 2017-05-23 11:43:23 +01:00
Leo Hemsted
47560515dc add upgrade script to remove non-null values from the sender column 2017-05-23 11:33:43 +01:00
Leo Hemsted
147c50f87b set sms_sender to be 'GOVUK' if not otherwise specified
this is a precursor to making the column non-nullable
2017-05-23 11:33:31 +01:00
Leo Hemsted
f899d74325 Merge pull request #973 from alphagov/40604-or-govuk
treat 40604 and GOVUK as not having a sender ID
2017-05-23 11:29:33 +01:00
Leo Hemsted
86c9600b04 use config to get default sender rather than hardcoding
this means that on non-prod envs, it reflects that environment.

it needs to be a lamdba, because the column object is created at import
time, when current_app.config won't have been loaded - this means that
when you create a Service object, that lambda executes and grabs the
correct default value
2017-05-23 11:12:37 +01:00
Ken Tsang
3d2c12128b Update services test 2017-05-22 17:27:26 +01:00
Ken Tsang
de7ad6fb95 Refactored service_permissions data model 2017-05-22 17:25:58 +01:00
Leo Hemsted
2535a7fe98 set sms_sender to be 'GOVUK' if not otherwise specified
this is a precursor to making the column non-nullable
2017-05-22 17:13:35 +01:00
Leo Hemsted
3744463296 treat 40604 and GOVUK as not having a sender ID
in prep for removing the 40604-as-default, first we need to make sure
that if you either have GOVUK or None as your sms sender, then we send
GOVUK through to the provider
2017-05-22 17:10:07 +01:00
kentsanggds
f5d3eed7e0 Revert "Refactored service permissisons data model" 2017-05-22 16:05:31 +01:00
Rebecca Law
9bfba52f53 Add pending flag to scheduled_notifications.
Set pending flag to false when the notification has been sent to provider task.
2017-05-22 15:07:16 +01:00
Rebecca Law
a57dc18895 Add validation for scheduled_for where the date can not be in the past or more than 24 hours in the future. 2017-05-22 14:39:30 +01:00
Rebecca Law
751abb4b99 Update dateformat for scheduled_for to include minutes. 2017-05-22 14:15:35 +01:00
kentsanggds
39f23c6189 Merge pull request #969 from alphagov/ken-refactor-service_permissions-data_model
Refactored service permissisons data model
2017-05-22 14:08:15 +01:00
Rebecca Law
3a3161ecc4 Merge branch 'master' into schedule-api-notification
Conflicts:
	app/celery/scheduled_tasks.py
	app/v2/notifications/post_notifications.py
	tests/app/celery/test_scheduled_tasks.py
2017-05-22 14:05:57 +01:00
Ken Tsang
052004bef0 Refactored data model to remove cascade 2017-05-22 13:33:43 +01:00
Ken Tsang
28ef9a1853 Refactored service permissisons data model 2017-05-22 10:58:41 +01:00
Imdad Ahad
02db3be37c General refactor 2017-05-22 10:12:18 +01:00
Martyn Inglis
119f0532ab Renamed the API method/url 2017-05-22 10:06:34 +01:00
Martyn Inglis
f0395e7496 New endpoint to get the count of billable SMS units. 2017-05-19 16:43:05 +01:00
Martyn Inglis
2a0669636d Add and test new DAO method that counts the billable units multiplied by rate multiplier for a given service for a given time period.
Currently this is SMS only.

Used by the dashboard for a headline figure.
2017-05-19 16:42:33 +01:00
Imdad Ahad
0e0c18583f Fix test data and how we parse the JSON 2017-05-19 10:16:48 +01:00
minglis
da6a6f6641 Merge pull request #959 from alphagov/comma-format-message-limit
Comma-format number when emailing live services
2017-05-18 11:06:24 +01:00
Martyn Inglis
8dc7a86148 Merge branch 'master' into async-job-stats
Conflicts:
	app/dao/services_dao.py
2017-05-18 09:34:54 +01:00
Ken Tsang
e68c3900e8 Add restricted argument for service mock 2017-05-17 16:06:35 +01:00
Rebecca Law
973cc2c4c9 Changed the scheduled_for datetime to only send and hour of a day to send.
Also expect the date being passed in is BST. The date is converted to UTC before saving. And converted to BST when returning a notification.
2017-05-17 15:06:15 +01:00
Ken Tsang
edff192efc Remove whitespace 2017-05-17 14:18:12 +01:00
Ken Tsang
54446d5f4d Add default permissions when creating a service 2017-05-17 14:18:12 +01:00
minglis
05a179c6ef Merge pull request #941 from alphagov/load-service-on-auth
Load service on auth
2017-05-17 10:49:00 +01:00
Martyn Inglis
83a1b1526e Merge branch 'master' into async-job-stats
Conflicts:
	app/notifications/notifications_ses_callback.py
2017-05-17 09:49:43 +01:00
Rebecca Law
1034762489 Ensure the relationship between Notification and ScheduledNotification is one-to-one.
Update db script with the right number
2017-05-16 15:29:31 +01:00