mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-20 22:42:53 -05:00
🎨 do not ping slack if we import content (#8476)
closes #7275 - forward options for events (post model only for now)
This commit is contained in:
parent
c7bbaffec3
commit
b22151ac92
3 changed files with 35 additions and 16 deletions
|
@ -9,7 +9,6 @@ var https = require('https'),
|
|||
api = require('../../api/settings'),
|
||||
i18n = require('../../i18n'),
|
||||
schema = require('../schema').checks,
|
||||
options,
|
||||
req,
|
||||
slackData = {};
|
||||
|
||||
|
@ -44,8 +43,15 @@ function makeRequest(reqOptions, reqPayload) {
|
|||
req.end();
|
||||
}
|
||||
|
||||
function ping(post) {
|
||||
var message;
|
||||
function ping(post, options) {
|
||||
options = options || {};
|
||||
|
||||
var message, reqOptions;
|
||||
|
||||
// CASE: do not ping slack if we import a database
|
||||
if (options.importing) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
// If this is a post, we want to send the link of the post
|
||||
if (schema.isPost(post)) {
|
||||
|
@ -79,20 +85,20 @@ function ping(post) {
|
|||
};
|
||||
|
||||
// fill the options for https request
|
||||
options = url.parse(slackSettings.url);
|
||||
options.method = 'POST';
|
||||
options.headers = {'Content-type': 'application/json'};
|
||||
reqOptions = url.parse(slackSettings.url);
|
||||
reqOptions.method = 'POST';
|
||||
reqOptions.headers = {'Content-type': 'application/json'};
|
||||
|
||||
// with all the data we have, we're doing the request now
|
||||
makeRequest(options, slackData);
|
||||
makeRequest(reqOptions, slackData);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function listener(model) {
|
||||
ping(model.toJSON());
|
||||
function listener(model, options) {
|
||||
ping(model.toJSON(), options);
|
||||
}
|
||||
|
||||
function testPing() {
|
||||
|
|
|
@ -20,13 +20,16 @@ Post = ghostBookshelf.Model.extend({
|
|||
|
||||
tableName: 'posts',
|
||||
|
||||
emitChange: function emitChange(event, usePreviousResourceType) {
|
||||
emitChange: function emitChange(event, options) {
|
||||
options = options || {};
|
||||
|
||||
var resourceType = this.get('page') ? 'page' : 'post';
|
||||
if (usePreviousResourceType) {
|
||||
|
||||
if (options.usePreviousResourceType) {
|
||||
resourceType = this.updated('page') ? 'page' : 'post';
|
||||
}
|
||||
|
||||
events.emit(resourceType + '.' + event, this);
|
||||
events.emit(resourceType + '.' + event, this, options);
|
||||
},
|
||||
|
||||
defaults: function defaults() {
|
||||
|
@ -47,7 +50,7 @@ Post = ghostBookshelf.Model.extend({
|
|||
model.emitChange('added');
|
||||
|
||||
if (['published', 'scheduled'].indexOf(status) !== -1) {
|
||||
model.emitChange(status);
|
||||
model.emitChange(status, {importing: options.importing});
|
||||
}
|
||||
|
||||
return this.updateTags(model, response, options);
|
||||
|
@ -87,14 +90,14 @@ Post = ghostBookshelf.Model.extend({
|
|||
// Handle added and deleted for post -> page or page -> post
|
||||
if (model.resourceTypeChanging) {
|
||||
if (model.wasPublished) {
|
||||
model.emitChange('unpublished', true);
|
||||
model.emitChange('unpublished', {usePreviousResourceType: true});
|
||||
}
|
||||
|
||||
if (model.wasScheduled) {
|
||||
model.emitChange('unscheduled', true);
|
||||
model.emitChange('unscheduled', {usePreviousResourceType: true});
|
||||
}
|
||||
|
||||
model.emitChange('deleted', true);
|
||||
model.emitChange('deleted', {usePreviousResourceType: true});
|
||||
model.emitChange('added');
|
||||
|
||||
if (model.isPublished) {
|
||||
|
|
|
@ -294,5 +294,15 @@ describe('Slack', function () {
|
|||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('do not ping if content is imported', function (done) {
|
||||
ping({}, {importing: true}).then(function () {
|
||||
isPostStub.called.should.be.false();
|
||||
urlForSpy.called.should.be.false();
|
||||
settingsAPIStub.called.should.be.false();
|
||||
makeRequestSpy.called.should.be.false();
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue