Commit Graph

87 Commits

Author SHA1 Message Date
John O'Nolan
7a8b94d1d8 2022 2022-01-06 13:42:05 +00:00
Sam Lord
303ca79832 Published new versions
- @tryghost/email-analytics-provider-mailgun@1.0.7
2021-12-06 11:35:57 +00:00
Sam Lord
f477e88a0f Update @tryghost/logging in Mailgun provider to v2
refs: https://github.com/TryGhost/Toolbox/issues/146

This allows the mailgun provider to run inside a job and talk to the parent process for logging.
2021-12-06 11:33:52 +00:00
Sam Lord
a2a1144bf7 Published new versions
- @tryghost/email-analytics-provider-mailgun@1.0.6
 - @tryghost/email-analytics-service@1.0.5
2021-12-02 12:27:45 +00:00
Sam Lord
a96cf1a39a Use @tryghost/logging package instead of injected argument
refs: https://github.com/TryGhost/Toolbox/issues/146
2021-12-02 12:26:23 +00:00
Kevin Ansfield
8eeefab2e1 Published new versions
- @tryghost/custom-theme-settings-service@0.3.1
 - @tryghost/email-analytics-provider-mailgun@1.0.5
 - @tryghost/email-analytics-service@1.0.4
2021-10-26 10:15:36 +01:00
Renovate Bot
399e9e0239 Update dependency nock to v13.1.4 2021-10-21 15:25:16 +02:00
Daniel Lockyer
73f21a5065 Added codecov.io coverage uploader to CI
refs https://linear.app/tryghost/issue/CORE-74/improve-the-test-situation

- this commit adds the codecov GitHub Action into CI so we can upload
  coverage reports
- the coverage files need to be in XML for them to work with
  codecov, so this commit also adds cobertura (XML) as a reporter
2021-10-20 14:36:35 +02:00
Thibaut Patel
38e9f84d41 Published new versions
- @tryghost/custom-theme-settings-service@0.2.0
 - @tryghost/email-analytics-provider-mailgun@1.0.4
 - @tryghost/email-analytics-service@1.0.3
2021-10-20 11:46:57 +02:00
Renovate Bot
63668b8df3 Update dependency mocha to v9.1.3 2021-10-20 06:31:15 +00:00
Naz
1579d7f3ed Published new versions
- @tryghost/custom-theme-settings-service@0.1.2
 - @tryghost/email-analytics-provider-mailgun@1.0.3
2021-10-11 17:16:38 +02:00
Naz
b5de031b42 Added debug logs to event fetch loop
refs https://linear.app/tryghost/issue/CORE-91/add-email-analytics-job-unstalling-mechanism

- Additional logs should give more insight into what's going on during event fetching
2021-10-11 17:15:35 +02:00
Kevin Ansfield
5e40a03336 Published new versions
- @tryghost/custom-theme-settings-service@0.0.5
 - @tryghost/email-analytics-provider-mailgun@1.0.2
 - @tryghost/email-analytics-service@1.0.2
2021-09-28 15:51:13 +01:00
Renovate Bot
372e89f8ce Update dependency mocha to v9.1.2 2021-09-28 08:59:37 +00:00
Kevin Ansfield
0f5ccb7131 Published new versions
- @tryghost/custom-theme-settings-service@0.0.1
 - @tryghost/email-analytics-provider-mailgun@1.0.1
 - @tryghost/email-analytics-service@1.0.1
2021-09-22 22:00:51 +01:00
Renovate Bot
e80bb79139 Update dependency mocha to v9.1.1 2021-08-31 08:26:23 +00:00
Renovate Bot
7bdd78c0de Update dependency mocha to v9.1.0 2021-08-23 04:54:43 +00:00
Renovate Bot
d13bd19e93 Update dependency sinon to v11.1.2 2021-07-28 15:01:32 +00:00
Renovate Bot
55cfcb0b1c Update dependency mocha to v9.0.3 2021-07-27 03:57:19 +00:00
Renovate Bot
055eede197 Update Test & linting packages 2021-07-06 04:34:39 +00:00
Renovate Bot
ec977273e3 Update dependency mocha to v9 2021-06-23 11:53:59 +00:00
Renovate Bot
e9accde2dd Update dependency sinon to v11 2021-05-27 19:34:33 +00:00
Renovate Bot
1e8e9b9beb Update Test & linting packages 2021-05-11 02:08:58 +00:00
Renovate Bot
33d44e089c Update dependency sinon to v10 2021-03-23 21:47:42 +00:00
Renovate Bot
de19b1487e Update Test & linting packages 2021-03-15 03:56:46 +00:00
Kevin Ansfield
7ae5ac5c0e Published new versions
- @tryghost/email-analytics-provider-mailgun@1.0.0
 - @tryghost/email-analytics-service@1.0.0
2021-03-10 16:52:09 +00:00
Renovate Bot
125ffd3d12 Update Test & linting packages 2021-03-09 03:58:42 +00:00
Renovate Bot
3ad49f0852 Update dependency nock to v13.0.10 2021-03-04 00:16:49 +00:00
Renovate Bot
f2c584697b Update Test & linting packages 2021-03-02 01:44:56 +00:00
Renovate Bot
6e56cbcae9 Pin dependencies 2021-03-02 00:04:24 +00:00
Kevin Ansfield
52efb86667 Published new versions
- @tryghost/email-analytics-provider-mailgun@1.0.0-rc.1
 - @tryghost/email-analytics-service@1.0.0-rc.1
2021-03-01 21:36:35 +00:00
Kevin Ansfield
0145c925a0 Added email analytics mailgun provider tests 2021-02-25 20:04:17 +00:00
Kevin Ansfield
88c648636c Initial update of email analytics packages to work as external modules
refs https://github.com/TryGhost/Ghost/pull/12541

- make `EventProcessor` a super-class designed to be inherited from in consumer applications for application-level implementation
  - helps to keep application-level concerns for event handling (eg, what to do with spam complaints) and things like application database knowledge in the consumer
- removed all database knowledge from `EmailAnalyticsService`
  - requires a `queries` option to be passed in that lets the consuming application provide knowledge and define how fetched stats should be aggregated
2021-02-24 21:23:56 +00:00
Kevin Ansfield
723218ee34 Added guard for page.items existing in Mailgun response
no issue

- it's possible to get Mailgun responses where the `items` array doesn't exist so we need to guard against that so we don't error
2021-02-24 21:03:29 +00:00
Kevin Ansfield
837334b536 Fixed linting 2021-02-24 21:03:29 +00:00
Kevin Ansfield
7bbf644d0d Added email analytics service (#12393)
no issue

- added `EmailAnalyticsService`
  - `.fetchAll()` grabs and processes all available events
  - `.fetchLatest()` grabs and processes all events since the last seen event timestamp
  - `EventProcessor` passed event objects and updates `email_recipients` or `members` records depending on the event being analytics or list hygiene
    - always returns a `EventProcessingResult` instance so that progress can be tracked and merged across individual events, batches (pages of events), and total runs
    - adds email_id and member_id to the returned result where appropriate so that the stats aggregator can limit processing to data that has changed
    - sets `email_recipients.{delivered_at, opened_at, failed_at}` for analytics events
    - sets `members.subscribed = false` for permanent failure/unsubscribed/complained list hygiene events
  - `StatsAggregator` takes an `EventProcessingResult`-like object containing arrays of email ids and member ids on which to aggregate statistics.
  - jobs for `fetch-latest` and `fetch-all` ready for use with the JobsService
- added `initialiseRecurringJobs()` function to Ghost bootup procedure that schedules the email analytics "fetch latest" job to run every minute
2021-02-24 21:03:29 +00:00
Kevin Ansfield
788676845d Added empty email analytics packages 2021-02-24 21:03:29 +00:00