add and remove maildb entries when domain is created and removed
This commit is contained in:
@@ -60,9 +60,13 @@ function add(name, domain, callback) {
|
|||||||
assert.strictEqual(typeof domain.config, 'object');
|
assert.strictEqual(typeof domain.config, 'object');
|
||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
database.query('INSERT INTO domains (domain, zoneName, provider, configJson) VALUES (?, ?, ?, ?)', [ name, domain.zoneName, domain.provider, JSON.stringify(domain.config) ], function (error) {
|
var queries = [];
|
||||||
|
queries.push({ query: 'INSERT INTO domains (domain, zoneName, provider, configJson) VALUES (?, ?, ?, ?)', args: [ name, domain.zoneName, domain.provider, JSON.stringify(domain.config) ] });
|
||||||
|
queries.push({ query: 'INSERT INTO maildb (domain) VALUES (?)', args: [ name ] });
|
||||||
|
|
||||||
|
database.transaction(queries, function (error, result) {
|
||||||
if (error && error.code === 'ER_DUP_ENTRY') return callback(new DatabaseError(DatabaseError.ALREADY_EXISTS, error));
|
if (error && error.code === 'ER_DUP_ENTRY') return callback(new DatabaseError(DatabaseError.ALREADY_EXISTS, error));
|
||||||
if (error) return callback(new DatabaseError(DatabaseError.INTERNAL_ERROR, error));
|
if (error || result[1].affectedRows !== 1) return callback(new DatabaseError(DatabaseError.INTERNAL_ERROR, error));
|
||||||
|
|
||||||
callback(null);
|
callback(null);
|
||||||
});
|
});
|
||||||
@@ -97,10 +101,14 @@ function del(domain, callback) {
|
|||||||
assert.strictEqual(typeof domain, 'string');
|
assert.strictEqual(typeof domain, 'string');
|
||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
database.query('DELETE FROM domains WHERE domain=?', [ domain ], function (error, result) {
|
var queries = [];
|
||||||
|
queries.push({ query: 'DELETE FROM maildb WHERE domain=?', args: [ domain ] });
|
||||||
|
queries.push({ query: 'DELETE FROM domains WHERE domain=?', args: [ domain ] });
|
||||||
|
|
||||||
|
database.transaction(queries, function (error, result) {
|
||||||
if (error && error.code === 'ER_ROW_IS_REFERENCED_2') return callback(new DatabaseError(DatabaseError.IN_USE));
|
if (error && error.code === 'ER_ROW_IS_REFERENCED_2') return callback(new DatabaseError(DatabaseError.IN_USE));
|
||||||
if (error) return callback(new DatabaseError(DatabaseError.INTERNAL_ERROR, error));
|
if (error) return callback(new DatabaseError(DatabaseError.INTERNAL_ERROR, error));
|
||||||
if (result.affectedRows !== 1) return callback(new DatabaseError(DatabaseError.NOT_FOUND));
|
if (result[1].affectedRows !== 1) return callback(new DatabaseError(DatabaseError.NOT_FOUND));
|
||||||
|
|
||||||
callback(null);
|
callback(null);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1755,12 +1755,9 @@ describe('database', function () {
|
|||||||
mailFromValidation: true
|
mailFromValidation: true
|
||||||
};
|
};
|
||||||
|
|
||||||
before(function (done) {
|
|
||||||
domaindb.add(DOMAIN_0.domain, { zoneName: DOMAIN_0.zoneName, provider: DOMAIN_0.provider, config: DOMAIN_0.config }, done);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('can add mail domain', function (done) {
|
it('can add mail domain', function (done) {
|
||||||
maildb.add(MAIL_DOMAIN_0.domain, done);
|
// this also adds the mail domain
|
||||||
|
domaindb.add(DOMAIN_0.domain, { zoneName: DOMAIN_0.zoneName, provider: DOMAIN_0.provider, config: DOMAIN_0.config }, done);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('cannot add same domain twice', function (done) {
|
it('cannot add same domain twice', function (done) {
|
||||||
|
|||||||
Reference in New Issue
Block a user