Commit Graph

1891 Commits

Author SHA1 Message Date
Imdad Ahad
94605d31fa Change how we populate and retrieve MonthlyBilling totals:
1. For both email and sms, store [] in monthly_totals if
there is no billing data (no notifications sent etc.) and
return this via the API

2. General refactoring of indentation
2017-08-15 16:09:42 +01:00
Imdad Ahad
46ca086aa2 Update command to populate monthly billing data for email and sms 2017-08-11 16:57:18 +01:00
Imdad Ahad
69845e9f37 Add helper methods to retrieve billing data from the new table:
Get yearly and monthly billing data from the new table
with filter by notification type. Additionally let's calculate
current day delta totals
2017-08-11 16:57:18 +01:00
Imdad Ahad
35ad5d74f9 Retrieve billing data (for month) by notification type:
* Previously we were only returning SMS. Let's make this return for
a given notification type.
* General refactor of the monthly retrieval query
* Return an empty BillingData tuple if email billing data is empty
2017-08-11 16:57:18 +01:00
Imdad Ahad
839c161628 Update monthly billing for SMS and Email:
* Refactor code to update for EMAIL_TYPE and SMS_TYPE
* Make tests more robust (overlapping rates, multiple months, multiple noti
* types)
*
2017-08-11 16:57:18 +01:00
Imdad Ahad
63e1167098 Make sure we update the correct month for billing:
When populating the monthly billing records on a schedule, we need
to ensure the correct month is being updated.

As an example, if the current datetime is 31 Mar 2016, 23:00. The
BST equivalent is the 1st April. Therefore we need to ensure we
update billing for April, not March. This takes care of that.
2017-08-11 16:57:17 +01:00
Imdad Ahad
782f3ea693 Rename method to get start and end date of a month for clarity 2017-08-11 16:56:47 +01:00
Imdad Ahad
19b09f2a27 Rename method to convert from utc to bst for consistency 2017-08-11 16:56:46 +01:00
kentsanggds
955ec60fe3 Merge pull request #1157 from alphagov/ken-add-inbound-number-model-dao
Add inbound number model and DAO
2017-08-11 15:17:47 +01:00
Ken Tsang
9a55e167f7 Refactored inbound_number dao 2017-08-11 12:56:59 +01:00
Ken Tsang
cfabab0785 Refactor code to add updated_at 2017-08-11 12:56:59 +01:00
Ken Tsang
a127a6e871 Added active flag setting in inbound_number_dao 2017-08-11 12:56:59 +01:00
Ken Tsang
ffc2da2369 Update serialization for services 2017-08-11 12:56:59 +01:00
Ken Tsang
61c09f142c Refactored model and dao 2017-08-11 12:56:59 +01:00
Ken Tsang
3c392596a3 Add backref in InboundNumber model 2017-08-11 12:56:59 +01:00
Ken Tsang
4de6060694 Add data models, dao for inbound_numbers 2017-08-11 12:56:59 +01:00
Rebecca Law
4b33f7e987 Stop purging the DVLA response files from S3
We are not processing the data in these files yet so we need to stop deleting them until the data is recorded.
2017-08-11 12:00:20 +01:00
Rebecca Law
0f26584761 Merge pull request #1164 from alphagov/check-service-name-is-unique
Check service name is unique
2017-08-10 10:21:58 +01:00
Leo Hemsted
83fc529cc5 fix broken cloudfoundry logs
wasn't setting log path properly
2017-08-09 16:07:35 +01:00
Rebecca Law
b227ed450a Got rid of an if 2017-08-09 15:42:40 +01:00
Leo Hemsted
e7b13e727a don't capture logs directly from stdout
previously in run_app_paas.sh, we captured stdout from the app and
piped that into the log file. However, this came up with a bunch of
problems, mainly:

* exceptions with stack traces often weren't formatted properly,
  and kibana could not parse them
* celery logs were duplicated - we'd collect both the json logs and
  the human readable stdout logs.

instead, with the updated utils library, we can use that to log json
straight to the appropriate directory directly.
2017-08-09 15:29:39 +01:00
Rebecca Law
1ec6a3b73d Created a new service endpoint that checks if the service name or email_from is unique.
Why is this needed?
When a user updates a service name they enter the new name in a form, are then asked to confirm the change by entering their password. Then the API call to update_service is called. If we let the update serivce API call fail with the integrity constraint it will be ackward for the user.
2017-08-09 15:12:52 +01:00
Leo Hemsted
14dd18aefc Merge pull request #1163 from alphagov/letter-template-subject
make sure template serialises letter subjects
2017-08-09 12:33:34 +01:00
Leo Hemsted
da02ffa32f ensure template history serializes using template serialize fn 2017-08-09 12:24:35 +01:00
Leo Hemsted
c9762f75a1 make sure template serialises letter subjects 2017-08-09 11:56:52 +01:00
Imdad Ahad
4d53481737 Merge pull request #1134 from alphagov/imdad-feat-check-notification-table-for-last-template-usage
Update the last template usage query to check Notification table
2017-08-09 10:22:21 +01:00
Leo Hemsted
5491adcabd address_line_2 is a required field 2017-08-07 14:23:44 +01:00
Imdad Ahad
f5e38a896c Update the last template usage query to check Notification table:
* Don't check the NotificationHistory table (this can cause a timeout)
* Check template actually exists first
2017-08-07 10:19:21 +01:00
Imdad Ahad
e148fafd53 Merge pull request #1144 from alphagov/imdad-feat-schedule-billing-and-adjust-backfill
Populate monthly billing on a schedule and make backfill less granular
2017-08-03 10:54:16 +01:00
Leo Hemsted
9c940ab8b4 Merge pull request #1136 from alphagov/letter-api
Letter api
2017-08-02 16:15:30 +01:00
Leo Hemsted
372b10f19c fix up tests to be internally consistent
notifications should always have at least one of job and api key, and
the key type should match the api key's key type (or be 'normal')
2017-08-02 15:35:56 +01:00
Imdad Ahad
824063ddb8 Fix to return billing data before a rate begins 2017-08-02 15:32:34 +01:00
Imdad Ahad
5b9377c697 Start populating monthly billing on a schedule 2017-08-02 15:32:32 +01:00
Leo Hemsted
5d61b3644c add tests for new test-key handling 2017-08-02 11:14:05 +01:00
Leo Hemsted
13917c9c57 give test letter api notifications a different filename
so they can be distinguished on the frontend.

Also, some related cleanup:

* don't show test api letters on the frontpage
* make sure the subject is returned from the API for letters
* make sure the letter's address is returned for letters
2017-08-01 18:23:29 +01:00
Leo Hemsted
075d2a3346 tighten key_type validation on letters api
when in research mode or test key, dont send letters via api - instead,
just put them straight to success state

when using a team key, flat out reject the request (403)
2017-08-01 15:49:00 +01:00
Imdad Ahad
a08de0939b Adjust command to backfill (less granular)
Rates began from 05-2016

This adjusts the command to backfill by year.

If 2016, let's backfill from May.
If 2017, let's backfill from the beginning of the year.
2017-08-01 11:36:30 +01:00
Leo Hemsted
76ea0dbc76 Merge branch 'master' of github.com:alphagov/notifications-api into letter-api 2017-07-31 18:15:16 +01:00
Imdad Ahad
d01d875f7e Fix issue where monthly billing data was not being updated: 2017-07-31 17:47:53 +01:00
Leo Hemsted
3cb3cf438e remove SEND_COMBINED 2017-07-31 13:29:30 +01:00
Leo Hemsted
8e738b783e update test_send_notification to account for new uuid mock 2017-07-31 11:10:05 +01:00
Leo Hemsted
11f8603319 Remove custom error message from personalisation validation
There's no longer a single err msg that fits all problems with
personalisation - since letters expect specific fields there
2017-07-27 16:49:37 +01:00
Leo Hemsted
2ab105aaf4 add tests for letter api notifications 2017-07-27 16:43:55 +01:00
Leo Hemsted
f528236eda make job.created_by nullable
Since letter jobs from the API aren't created by any single individual,
lets make created_by nullable. Note: We'll have to make sure that we
update the admin app to handle these jobs nicely
2017-07-27 12:58:13 +01:00
kentsanggds
2df411a985 Merge pull request #1131 from alphagov/ken-update-email-logo-use-cdn
Update email logo to use logo CDN
2017-07-27 11:50:00 +01:00
Leo Hemsted
2746bf0318 process letters from api traffic
there are three steps to this

1. Create a job
  * Starts in status 'ready to send'
  * Created by None, since it's from the API
  * original file name 'letter submitted via api'
2. Create a single notification for that job
  * job_row_number 0
  * client reference if provided
  * address line 1 as recipient
3. Trigger the build_dvla_file task
  we know that all the notifications have been created for this job
  (since we just created them ourselves synchronously), so this will
  just create the dvla-format file for the job, and upload it to s3.
2017-07-27 11:12:09 +01:00
Rebecca Law
c1f2634c90 Removed month and year and replaced it with start_date and end_date.
This will allow us to sort the data properly.
2017-07-26 13:19:17 +01:00
Ken Tsang
0daf88aff7 Refactored code 2017-07-26 11:05:31 +01:00
Ken Tsang
3e6e75998b Update config to use logo cdn 2017-07-26 11:05:31 +01:00
Rebecca Law
3878ece9ea Merge pull request #1129 from alphagov/use-bst-for-month
Use BST to calculate monthly billing
2017-07-26 09:56:15 +01:00