Commit Graph

8700 Commits

Author SHA1 Message Date
Leo Hemsted
aaadf09562 add tests for new sched task 2017-09-26 12:03:06 +01:00
Leo Hemsted
b1928b928c update process_letter tests 2017-09-26 11:28:54 +01:00
venusbb
6a7013fa7a Enable Inbound sms IP blocking 2017-09-26 10:59:09 +01:00
Leo Hemsted
f3db920c71 remove jobs from letter api calls
we now no longer create a job. At the end of the post there is no
action, as we don't have any tasks to queue immediately - if it's a
real notification it'll get picked up in the evening scheduled task.

If it's a test notification, we create it with an initial status of
sending so that we can be sure it'll never get picked up - and then we
trigger the update-letter-notifications-to-sent-to-dvla task to sent
the sent-at/by.
2017-09-26 09:57:36 +01:00
Leo Hemsted
daf1dc4dca fix bucket names and change crontab param order for clarity 2017-09-26 09:57:36 +01:00
Leo Hemsted
5e230943c4 remove trailing comma from CELERY_ENABLE_UTC, a beat config option
To run beat after this, you must remove the celerybeat-schedule file from your notifications-api
project root
2017-09-26 09:57:36 +01:00
Leo Hemsted
cdc8acb49a only trigger DVLA tasks if there is data to send 2017-09-26 09:57:36 +01:00
Leo Hemsted
04412fd314 update queue name 2017-09-26 09:57:35 +01:00
Leo Hemsted
17ba8db97f remove jobs from letter api and make success/error ftp callback tasks
1. No longer create jobs when creating letters from api 🎉
2. Bulk update notifications based on the notification references after
   we send them to DVLA - either as success or as error
2017-09-26 09:57:35 +01:00
Leo Hemsted
7dd3c1df5a set letter notifications to pending while notify-ftp does its stuff
this means that if the task is accidentally ran twice (eg we autoscale
notify-celery-worker-beat to 2), it won't send letters twice.

Additionally, update some function names and config variables to make
it clear that they are referring to letter jobs, rather than all letter
content
2017-09-26 09:57:35 +01:00
Leo Hemsted
f61ccd8ff0 add run_letter_notifications scheduled task
this task grabs all notifications that are sent via the API, and
are still in created - and sends them off to DVLA.
2017-09-26 09:57:35 +01:00
Sakis
c36ced5b56 Merge pull request #1274 from alphagov/configure-gunicorn-errorlog
Configure gunicorn errorlog
2017-09-26 09:53:27 +01:00
Athanasios Voutsadakis
f32a243e47 Change .info to .error 2017-09-25 16:24:35 +01:00
Imdad Ahad
f0784109a1 Upsert into letter contact table when updating a service's letter contact block 2017-09-25 16:01:24 +01:00
Imdad Ahad
3977574ef1 Add methods to add/update letter contacts for a service that handle defaults properly 2017-09-25 15:46:01 +01:00
Rebecca Law
0fa16cc9d1 Merge pull request #1270 from alphagov/select-inbound-number-to-assign
Select an inbound number for a service
2017-09-25 14:17:36 +01:00
Imdad Ahad
fa3f4f3c20 Add dao to store letter contacts and upsert 2017-09-25 12:26:29 +01:00
Venus Bailey
e355c870d0 Merge pull request #1275 from alphagov/vb-platform-admin-api
Platform Admin Timeout problem
2017-09-25 12:10:48 +01:00
Rebecca Law
b195257d94 Added another test 2017-09-25 11:14:29 +01:00
Rebecca Law
64db8cb18d Merge branch 'master' into select-inbound-number-to-assign 2017-09-25 11:13:12 +01:00
venusbb
34430ac97e tidy up codes and tests 2017-09-25 09:44:16 +01:00
Chris Hill-Scott
55d185f50d Return metadata about placeholders
In the future, we may want to return additional information about
placeholders.

We came up with three possible formats:
1. list of `dict`s, eg `[{'name': 'first name', 'required': True}]`
2. `dict` of `list`s, eg `{'required': ['first name']}`
3. `dict` of `dict`s, eg `{'name': {'required': True}}`

I don’t like 1. because it’s harder to traverse if all you want is the
name of the placeholders, and suggests that you could have two
placeholders with the same name (which you can’t). I don’t like 2.
because it only lets the data be sliced by one dimension (unless the
inner lists aren’t exclusive, in which case you’d need to filter
duplicates when just listing placeholders).

I think 3. has the two advantages of:
- represents that personalisation is unique, ie you can’t pass back in
  two different values for the same key
- is forward compatible, ie we can add many more properties of a
  placeholder without breaking anything

So this commit implements 3.
2017-09-22 16:42:16 +01:00
Rebecca Law
f2928e6c55 Migration server command to create one row in Service_sms_senders for each service. 2017-09-22 16:27:23 +01:00
venusbb
35cb7a0556 inserted missing codes 2017-09-22 15:52:11 +01:00
venusbb
4e991c26a2 Progress: Filtered day completed 2017-09-22 15:39:53 +01:00
Athanasios Voutsadakis
291071273e Fix PEP8 2017-09-22 15:34:43 +01:00
Athanasios Voutsadakis
646290e2c4 Implement worker_abort server hook
Also update the manifest command to pass the config file in as a parameter
and modify the logs agent to start shipping the error log to cloudwatch
2017-09-22 15:03:45 +01:00
Athanasios Voutsadakis
01611c1936 Configure gunicorn error log file 2017-09-22 11:28:55 +01:00
venusbb
da21248dcf Merge branch 'master' of https://github.com/alphagov/notifications-api into vb-platform-admin-api 2017-09-22 11:14:09 +01:00
venusbb
d59a1f447a Progress: Today stats completed 2017-09-22 11:05:36 +01:00
Rebecca Law
9a1410f48d Merge pull request #1273 from alphagov/add-order-by
Add order by in the dao_get_reply_to_by_service_id()
2017-09-22 10:31:33 +01:00
Rebecca Law
03ea09fd6a Add order by in the dao_get_reply_to_by_service_id() 2017-09-22 10:02:59 +01:00
Chris Hill-Scott
fa8e4b29f2 Return placeholders when getting a template
> Currently when retrieving a template via one of the clients, we do
> not return the personalisation fields that are required for that
> template.
>
> This is useful for services who want to perform template validation on
> their own systems. A service user has also requested this.

– https://www.pivotaltracker.com/story/show/150674476

This commit adds an extra attribute to the JSON response containing an
array of the placeholder names. This key is called "personalisation",
to match the argument that developers use to pass in the values of
placeholders.
2017-09-22 10:00:23 +01:00
Rebecca Law
9bc1d13785 Merge pull request #1272 from alphagov/get-reply-to-by-id
New endpoint to fetch a single reply-to email address by id
2017-09-22 09:41:19 +01:00
kentsanggds
28c7a2b50c Merge pull request #1271 from alphagov/ken-add-service-letter-content-model
Add ServiceLetterContact data model and migration script
2017-09-21 17:08:01 +01:00
Rebecca Law
795bd4271c New endpoint to fetch a single reply-to email address by id 2017-09-21 17:02:58 +01:00
Ken Tsang
91a618531d Update serialization and service schema
- added id and service_id in serialization
- added 'letter_contacts' to the exluded list for marshmallow service schema
2017-09-21 16:38:24 +01:00
Ken Tsang
366d07dbbe Add ServiceLetterContact data model and script 2017-09-21 16:08:49 +01:00
Rebecca Law
18581c754a Add new endpoint to get available inbound number.
Add new endpoint to allocate a specific number to a given service.

This will allow the platform admin user to choose a number when setting the inbound_sms permission for a service.
2017-09-21 15:18:52 +01:00
Chris Hill-Scott
e6d6b6f985 Merge pull request #1269 from alphagov/fix-sending-emails-no-logo
Fix sending emails with no logo
2017-09-21 13:40:11 +01:00
Chris Hill-Scott
ee5888f07f Fix sending emails with no logo
Code was not expecting logo to be `None`, thereby causing the task to
throw an exception, and retry until eventually putting the email in
technical error (for services with org branding but no logo).
2017-09-21 13:37:57 +01:00
Chris Hill-Scott
8360b9a122 Merge pull request #1265 from alphagov/logoless-organsations
Make organisation logo nullable
2017-09-21 13:01:06 +01:00
Leo Hemsted
e4732c8c4b Merge pull request #1268 from alphagov/sample-service-permissions
update letter tests to use correct service
2017-09-21 12:06:08 +01:00
Leo Hemsted
e18e78180e update letter tests to use correct service
previously they were using sample_service fixture under the hood, but
with full permissions added - this works fine, **unless** there's
already a service with the name "sample service" in the database. This
can happen for two reasons:

* A previous test didn't tear down correctly
* This test already invoked the sample_service fixture somehow

If this happens, we just return the existing service, without modifying
its values - values that we might change in tests, such as
research mode or letters permissions.

In the future, we'll have to be vigilant! and aware! and careful! to
not use sample_service if we're doing tests involving letters, since
they create a service with a different name now
2017-09-21 11:50:49 +01:00
Rebecca Law
76106b9f7f Merge pull request #1267 from alphagov/add-id-for-reply-to
Add id and service_id to the serialize method on ServiceEmailReplyTo
2017-09-21 10:56:17 +01:00
Rebecca Law
0c9f16a8d1 Add id and service_id to the serialize method on ServiceEmailReplyTo 2017-09-21 10:21:32 +01:00
Rebecca Law
08fdcbfc67 Merge pull request #1266 from alphagov/use-reply-to-from-new-table
Use reply to email address from new table
2017-09-21 09:54:52 +01:00
Leo Hemsted
9afb2c36e7 Merge pull request #1241 from alphagov/letter-received
Letters are accepted, not created or sending
2017-09-20 16:51:31 +01:00
Rebecca Law
9e818a558e Fix the ServiceSchema to only dump the reply_to_email_address 2017-09-20 15:47:29 +01:00
Leo Hemsted
4174c72f21 allow 'accepted' as a proxy for created + sending as well as 'failed' for the three failure types when querying the api 2017-09-20 15:30:14 +01:00