mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-21 18:01:36 +03:00
717543835c
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
13 lines
342 B
JavaScript
13 lines
342 B
JavaScript
const config = require('../../../shared/config');
|
|
const logging = require('../../../shared/logging');
|
|
const db = require('../../data/db');
|
|
const settings = require('../settings/cache');
|
|
const EmailAnalyticsService = require('./email-analytics');
|
|
|
|
module.exports = new EmailAnalyticsService({
|
|
config,
|
|
logging,
|
|
db,
|
|
settings
|
|
});
|