Commit Graph

12142 Commits

Author SHA1 Message Date
Renovate Bot 90adc9ed98
Update dependency sinon to v9.2.2 2020-12-11 12:43:36 +00:00
Daniel Lockyer cbadaa762d
v3.40.1 2020-12-11 11:28:16 +00:00
Daniel Lockyer 0c0b5fb1e0
Updated Ghost-Admin to v3.40.1 2020-12-11 11:28:15 +00:00
Thibaut Patel 1677a05481 🐛 Fixed an issue with zip files parsing.
no issue

Updated gscan to 3.6.1
2020-12-11 12:15:29 +01:00
Daniel Lockyer 78013968e7
v3.40.0 2020-12-10 15:49:37 +00:00
Daniel Lockyer 31ba8029b0
Updated Ghost-Admin to v3.40.0 2020-12-10 15:49:37 +00:00
Fabien O'Carroll 939a54cc35 🐛 Fixed comped flag for members
no-issue

We now include all subscriptions as part of the member, so we need to
ensure the comped flag is only true if the member has an **active**
complimentary plan
2020-12-10 13:14:07 +00:00
Peter Zimon c856d712ec
Import email refinements (#12473)
* Updated import email subject

* Updated import email title

* Fixed copy in import email to reflect if there was at least one member added
2020-12-10 12:19:26 +01:00
Thibaut Patel 63dde5a46c
Made the package-json module ready to be exported (#12451)
no issue
2020-12-10 11:37:43 +01:00
Kevin Ansfield c1d66f0b01
Added `email_recipients` include option to members API read endpoint (#12471)
refs https://github.com/TryGhost/Ghost-Admin/pull/1796

We want to be able to display an email activity timeline in Ghost-Admin for each member. The quickest way to achieve that right now is to provide access to the `email_recipient` data for the member when fetching, this will allow clients to build up a timeline based on the event timestamps included with each email_recipient/email pair.

- sets up `email_recipients` relationship in `Member` model
- updates members API read endpoint to accept an `email_recipients` include parameter
  - appends `email_recipients.email` to the `withRelated` array when `email_recipients` is included so that we have data available for email subject and html/plaintext for previews
- updates members API output serializer to include the email_recipients object in the output
2020-12-10 10:04:05 +00:00
Kevin Ansfield 9586d1ce56 Fixed sqlite storing member email open rate as floats
no issue

- sqlite will store a float in an integer column due to it's type affinity resulting in long decimal numbers in the UI when we're expecting an integer
- use the `ROUND()` function to ensure we're storing integers in place of floats when performing open rate average calculations
2020-12-10 10:00:25 +00:00
Renovate Bot c2bb7bd106 Update dependency @tryghost/mw-session-from-token to v0.1.12 2020-12-10 09:43:25 +00:00
Renovate Bot 7b4e041203 Update dependency @tryghost/adapter-manager to v0.2.4 2020-12-10 09:43:13 +00:00
Renovate Bot 89f77c8248 Update dependency @tryghost/job-manager to v0.5.0 2020-12-10 09:43:04 +00:00
Renovate Bot 0e6ee237ac Update dependency @tryghost/session-service to v0.1.13 2020-12-10 09:42:48 +00:00
Renovate Bot 712f78bc24
Update dependency @tryghost/helpers to v1.1.35 2020-12-09 21:48:48 +00:00
Kevin Ansfield 24bd2d78cb Fixed validation errors when saving members
no issue

- schema validation was erroring due extra properties on the member resource that were recently added to the output causing the client to send them back when saving
- updated @tryghost/admin-api-schema to include skips for the new read-only properties
2020-12-09 21:47:14 +00:00
Fabien O'Carroll 32fe260763 Updated canary members controller to use new Importer
no-issue

This completely replaces the old import functionality with the new
importer!
2020-12-09 19:25:57 +00:00
Fabien O'Carroll ff12d7a89a Updated @tryghost/members-{api,csv} for importer
no-issue

- Updates members-api to throw errors when attempting to link to
  stripe customers if it is not configured, which allows us to include
  the errors in the CSV

- Updates members-csv to handle the header mappings as well as parsing
  the values so that we can read a CSV file and get back valid member
  objects
2020-12-09 19:25:57 +00:00
Fabien O'Carroll cfad396652 Exported MembersCSVImporter from Members service
no-issue

This will allow the controller to be updated to use the new importer
2020-12-09 19:25:57 +00:00
Fabien O'Carroll ff7773d1cf Added new members importer module
no-issue

This module encapsulates the work around performing imports, it
currently uses the concept of a "Job" which at the moment is not
persisted to the database, however when we want to look at resuming
imports after a server restart, this should give us the flexibility to
do it.
2020-12-09 19:25:57 +00:00
Fabien O'Carroll c7359a083f Added email template for completion of background jobs
no-issue

This will be used to generate email content used for notifying users
that their import has been completed.
2020-12-09 19:25:57 +00:00
Fabien O'Carroll 73dc19e498 Removed Members CSV import validation endpoint
no-issue

The new import flow does not use prevalidation of the CSV file, so we
have no use for this anymore.
2020-12-09 19:25:57 +00:00
Fabien O'Carroll 83c5270217 Removed support for batched CSV importer
no-issue

We are rewriting the Members CSV importer to use background jobs, the
batched importer will no longer be used locally.
2020-12-09 19:25:57 +00:00
Kevin Ansfield baf635e27b Updated email stats aggregator for new member count columns
refs https://github.com/TryGhost/Ghost/issues/12461

- added two default aggregations for overall email count and opened email count
- when number of tracked emails is sufficient add the open rate aggregation to the update query
2020-12-09 13:14:39 +00:00
Kevin Ansfield b1aafd715d
Added `members.email_{count,opened_count} `column migrations (#12470)
refs https://github.com/TryGhost/Ghost/issues/12461

- adds `members.email_count` and `members.email_opened_count` columns to contain cached counts for faster queries when outputting member data via API
- adds migration to populate cached counts with existing data
  - tested locally on ~50k members which took ~4sec on mysql
- updates members output serializer to include the new fields in API output
2020-12-09 12:21:56 +00:00
Thibaut Patel c25344d414
Refactored core/server/lib/image for Dependency Injection (#12463)
no issue
2020-12-09 13:19:22 +01:00
Renovate Bot e91f740ade Update dependency jwks-rsa to v1.12.0 2020-12-09 09:57:24 +00:00
Renovate Bot 3d4f5b5ee5
Update dependency uuid to v8.3.2 2020-12-08 21:23:14 +00:00
Kevin Ansfield 748a8e0d0f
Added `email_open_rate` order option to members API (#12462)
refs https://github.com/TryGhost/Ghost/issues/12421

- add `orderRawQuery` function to members model so that we can ensure members with an open rate are ordered before members without an open rate no matter the order direction chosen
- added `email_open_rate` to members in the test fixtures to allow testing of order
2020-12-08 12:43:48 +00:00
Kevin Ansfield 567eb6325f
Added members.email_open_rate aggregation to email analytics (#12458)
refs https://github.com/TryGhost/Ghost/issues/12421
requires https://github.com/TryGhost/Ghost/pull/12457

- updates stats aggregator to calculate and store an open rate for each member
  - uses two queries because I couldn't find a reasonable approach to perform the update in a single query as per the email aggregation
  - benchmarked locally at <1sec/1000members
  - will not store an open rate unless the number of tracked emails sent to a member is above a certain threshold (defaults to 5) to avoid new members being heavily weighted
- fixes typo in EmailAnalytics that was stopping member stats from being aggregated
2020-12-08 12:43:10 +00:00
Kevin Ansfield 9fd6f30fd7
Added migration for members.email_open_rate column (#12457)
refs https://github.com/TryGhost/Ghost/issues/12421

- nullable so we can distinguish between members that have and haven't received any trackable emails
- indexed because we'll be using this column for sorting
2020-12-08 12:20:17 +00:00
Daniel Lockyer 99632eab43
Merged 3.39.3 into master
v3.39.3

* tag '3.39.3':
  v3.39.3
  Updated Ghost-Admin to v3.39.3
2020-12-08 09:42:01 +00:00
Daniel Lockyer 6ca434a16f
v3.39.3 2020-12-08 09:37:00 +00:00
Daniel Lockyer 894d18c641
Updated Ghost-Admin to v3.39.3 2020-12-08 09:37:00 +00:00
renovate[bot] 85f94ad4b4
Update dependency @tryghost/job-manager to v0.4.0 (#12460)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-08 17:48:13 +13:00
Kevin Ansfield 5d11475f32 Fixed false positive image-size tests
no issue

- fixed usage of rewire and sinon spies
  - spies actually set (and reset) on the rewired module so the spies are called in place of the original functions
- fixed should syntax for spies, they were written with chai syntax but we don't use chai in server-side code
- chained `.catch(done)` to the `.catch(assertions)` in tests that are testing errors so that we don't have unhandled rejections and 60s timeouts when an assert fails
- changed `.gif` to `.ico` to match current fetch-only extension list
- fixed "[failure] can handle an error with statuscode not 200 (image-size)" which was expecting the `sizeOf` function to be called when it shouldn't be called
2020-12-07 22:38:14 +00:00
Renovate Bot 3aa43eb36f
Update dependency js-yaml to v3.14.1 2020-12-07 19:50:35 +00:00
Renovate Bot 81d5fb60d1
Update dependency @sentry/node to v5.29.0 2020-12-07 11:18:56 +00:00
Daniel Lockyer 12470de19c
Merged 3.39.2 into master
v3.39.2

* tag '3.39.2':
  v3.39.2
  Updated Ghost-Admin to v3.39.2
  Added guard for page.items existing in Mailgun response
2020-12-07 11:17:37 +00:00
Daniel Lockyer 3d61603719
v3.39.2 2020-12-07 11:14:54 +00:00
Daniel Lockyer cf744daa51
Updated Ghost-Admin to v3.39.2 2020-12-07 11:14:54 +00:00
Kevin Ansfield 2fe94f34ff
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
2020-12-07 11:12:03 +00:00
Kevin Ansfield 84ae8585c6 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
2020-12-07 11:07:25 +00:00
Daniel Lockyer f351357159
Merged 3.39.1 into master
v3.39.1

* tag '3.39.1':
  v3.39.1
  Updated Ghost-Admin to v3.39.1
2020-12-07 09:23:12 +00:00
Daniel Lockyer 0f6f5d09db
v3.39.1 2020-12-07 09:20:09 +00:00
Daniel Lockyer 801729cd7f
Updated Ghost-Admin to v3.39.1 2020-12-07 09:20:09 +00:00
Renovate Bot 52b0f970e9
Update dependency eslint to v7.15.0 2020-12-07 00:07:07 +00:00
Kevin Ansfield 7c57ffd6a6 Fixed posts without open rate being ordered in reverse
refs https://github.com/TryGhost/Ghost/issues/12420

- adds additional sorting by post creation date so that posts below those with an open rate appear in a more useful order
2020-12-04 13:12:14 +00:00
Thibaut Patel 7038f381b3 🐛 Fixed page preview
issue #12444
2020-12-04 11:35:15 +01:00