Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions action/kafkaFeedWeb.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,15 @@ function main(params) {
})
.then(triggerDoc => {
if (!triggerDoc.status.active) {
resolve(common.webResponse(400, `${params.triggerName} cannot be updated because it is disabled`));
return resolve(common.webResponse(400, `${params.triggerName} cannot be updated because it is disabled`));
}

return common.performUpdateParameterValidation(params, triggerDoc)
.then(updatedParams => db.updateTrigger(triggerDoc, updatedParams))
.then(updatedParams => {
return db.disableTrigger(triggerDoc)
.then(() => db.getTrigger(params.triggerName))
.then(doc => db.updateTrigger(doc, updatedParams));
});
})
.then(() => {
console.log('successfully updated the trigger');
Expand Down
51 changes: 30 additions & 21 deletions action/lib/Database.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,16 @@ module.exports = function(dbURL, dbName) {
return new Promise((resolve, reject) => {
this.db.insert(params, (err, result) => {
if(err) {
reject(err);
if(err.statusCode && err.statusCode === 409) {
this.getTrigger(params.triggerName)
.then(doc => this.disableTrigger(doc))
.then(() => this.getTrigger(params.triggerName))
.then(doc => this.updateTrigger(params, {_rev: doc._rev}))
.then(result => resolve(result))
.catch(err => reject(err));
} else {
reject(err);
}
} else {
resolve(result);
}
Expand Down Expand Up @@ -122,7 +131,7 @@ module.exports = function(dbURL, dbName) {
});
};

this.updateTrigger = function(existing, params) {
this.disableTrigger = function(existing) {
return new Promise((resolve, reject) => {
var message = 'Automatically disabled trigger while updating';
var status = {
Expand All @@ -139,27 +148,27 @@ module.exports = function(dbURL, dbName) {
}
});
})
.then(() => this.getTrigger(existing.triggerName))
.then(doc => {
for (var key in params) {
if (params[key] !== undefined) {
doc[key] = params[key];
}
};

this.updateTrigger = function(existing, params) {
for (var key in params) {
if (params[key] !== undefined) {
existing[key] = params[key];
}
var status = {
'active': true,
'dateChanged': Date.now()
};
doc.status = status;
}
var status = {
'active': true,
'dateChanged': Date.now()
};
existing.status = status;

return new Promise((resolve, reject) => {
this.db.insert(doc, (err, result) => {
if(err) {
reject(err);
} else {
resolve(result);
}
});
return new Promise((resolve, reject) => {
this.db.insert(existing, (err, result) => {
if(err) {
reject(err);
} else {
resolve(result);
}
});
});
};
Expand Down
9 changes: 7 additions & 2 deletions action/messageHubFeedWeb.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,15 @@ function main(params) {
})
.then(triggerDoc => {
if (!triggerDoc.status.active) {
resolve(common.webResponse(400, `${params.triggerName} cannot be updated because it is disabled`));
return resolve(common.webResponse(400, `${params.triggerName} cannot be updated because it is disabled`));
}

return common.performUpdateParameterValidation(params, triggerDoc)
.then(updatedParams => db.updateTrigger(triggerDoc, updatedParams))
.then(updatedParams => {
return db.disableTrigger(triggerDoc)
.then(() => db.getTrigger(params.triggerName))
.then(doc => db.updateTrigger(doc, updatedParams));
});
})
.then(() => {
console.log('successfully updated the trigger');
Expand Down