diff --git a/core/server/analytics-events.js b/core/server/analytics-events.js index c0efa7a5ac..7a8d1533d4 100644 --- a/core/server/analytics-events.js +++ b/core/server/analytics-events.js @@ -22,6 +22,10 @@ module.exports.init = function () { { event: 'theme.uploaded', name: 'Theme Uploaded' + }, + { + event: 'integration.added', + name: 'Custom Integration Added' } ]; diff --git a/core/server/models/integration.js b/core/server/models/integration.js index a441b83e42..5ae32c1edb 100644 --- a/core/server/models/integration.js +++ b/core/server/models/integration.js @@ -16,6 +16,11 @@ const Integration = ghostBookshelf.Model.extend({ }; }, + emitChange: function emitChange(event, options) { + const eventToTrigger = 'integration' + '.' + event; + ghostBookshelf.Model.prototype.emitChange.bind(this)(this, eventToTrigger, options); + }, + add(data, options) { const addIntegration = () => { return ghostBookshelf.Model.add.call(this, data, options) @@ -67,6 +72,12 @@ const Integration = ghostBookshelf.Model.extend({ } }, + onCreated: function onCreated(model, response, options) { + ghostBookshelf.Model.prototype.onCreated.apply(this, arguments); + + model.emitChange('added', options); + }, + permittedAttributes(...args) { return ghostBookshelf.Model.prototype.permittedAttributes.apply(this, args).concat(this.relationships); },