Ghost/core/server/models/email-recipient.js
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

32 lines
757 B
JavaScript

const ghostBookshelf = require('./base');
const EmailRecipient = ghostBookshelf.Model.extend({
tableName: 'email_recipients',
hasTimestamps: false,
relationships: ['email'],
relationshipBelongsTo: {
email: 'emails'
},
email() {
return this.belongsTo('Email', 'email_id');
},
emailBatch() {
return this.belongsTo('EmailBatch', 'batch_id');
},
member() {
return this.belongsTo('Member', 'member_id');
}
});
const EmailRecipients = ghostBookshelf.Collection.extend({
model: EmailRecipient
});
module.exports = {
EmailRecipient: ghostBookshelf.model('EmailRecipient', EmailRecipient),
EmailRecipients: ghostBookshelf.collection('EmailRecipients', EmailRecipients)
};