Ghost/core/server
Kevin Ansfield 322664a145
Added ability to send a newsletter to members with a certain label or product (#12932)
refs https://github.com/TryGhost/Team/issues/581
refs https://github.com/TryGhost/Team/issues/582

When publishing a post via the API it was possible to send it using `?email_recipient_filter=all/free/paid` which allowed you to send to members only based on their payment status which is quite limiting for some sites.

This PR updates the `?email_recipient_filter` query param to support Ghost's `?filter` param syntax which enables more specific recipient lists, eg:

`?email_recipient_filter=status:free` = free members only
`?email_recipient_filter=status:paid` = paid members only
`?email_recipient_filter=label:vip` = members that have the `vip` label attached
`?email_recipient_filter=status:paid,label:vip` = paid members and members that have the `vip` label attached

The older `free/paid` values are still supported by the API for backwards compatibility.

- updates `Post` and `Email` models to transform legacy `free` and `paid` values to their NQL equivalents on read/write
  - lets us not worry about supporting legacy values elsewhere in the code
  - cleanup migration to transform all rows slated for 5.0
- removes schema and API `isIn` validations for recipient filters so allow free-form filters
- updates posts API input serializers to transform `free` and `paid` values in the `?email_recipient_filter` param to their NQL equivalents for backwards compatibility
- updates Post API controllers `edit` methods to run a query using the supplied filter to verify that it's valid
- updates `mega` service to use the filter directly when selecting recipients
2021-05-07 11:56:41 +01:00
..
adapters Moved i18n to shared 2021-05-04 13:03:38 +01:00
api Added ability to send a newsletter to members with a certain label or product (#12932) 2021-05-07 11:56:41 +01:00
data Added ability to send a newsletter to members with a certain label or product (#12932) 2021-05-07 11:56:41 +01:00
lib Changed Error to IncorrectUsageError in package-json 2021-05-06 13:22:59 +01:00
models Added ability to send a newsletter to members with a certain label or product (#12932) 2021-05-07 11:56:41 +01:00
public New logo in Admin (#12768) 2021-03-18 17:27:27 +00:00
services Added ability to send a newsletter to members with a certain label or product (#12932) 2021-05-07 11:56:41 +01:00
views Added new, simpler, linear boot process 2021-02-08 11:56:44 +00:00
web Moved i18n to shared 2021-05-04 13:03:38 +01:00
analytics-events.js Expanded requires of lib/common i18n and events 2021-05-03 17:14:52 +01:00
ghost-server.js Refactored urlUtils out of ghost-server 2021-05-05 14:24:59 +01:00
notify.js Refactored notify to send started + ready 2021-02-19 20:42:10 +00:00
overrides.js Moved sqlite3 override rules to db connection lib 2021-02-05 11:51:56 +00:00
update-check.js Moved i18n to shared 2021-05-04 13:03:38 +01:00