manage errors

This commit is contained in:
Simon Martín
2018-08-01 12:26:40 +02:00
parent fd875c41c7
commit 410cbd082c
+14 -9
View File
@@ -206,23 +206,28 @@ TemplateMaps.prototype.addTemplate = function(owner, template, callback) {
}
self._redisCmd('HLEN', [ userTemplatesKey ], (err, numberOfTemplates) => {
assert.ifError(err);
if (err) {
return callback(err);
}
if ( limit && numberOfTemplates >= limit ) {
var limitReachedError = new Error("User '" + owner + "' reached limit on number of templates (" +
numberOfTemplates + "/" + limit + ")");
var limitReachedError = new Error(
`User '${owner}' reached limit on number of templates (${numberOfTemplates}/${limit})`
);
limitReachedError.http_status = 409;
throw limitReachedError;
return callback(limitReachedError);
}
self._redisCmd('HSETNX', [ userTemplatesKey, templateName, JSON.stringify(template) ], (err, wasSet) => {
assert.ifError(err);
if ( ! wasSet ) {
throw new Error("Template '" + templateName + "' of user '" + owner + "' already exists");
if (err) {
return callback(err);
}
if (!err) {
self.emit('add', owner, templateName, template);
if (!wasSet) {
const ownerExistsError = new Error(`Template '${templateName}' of user '${owner}' already exists`);
return callback(ownerExistsError);
}
self.emit('add', owner, templateName, template);
callback(err, templateName, template);
});
});