From f4e1b8874c6c019ce180a2a122d5dcddde3e8652 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Sun, 21 Jan 2018 00:27:28 -0800 Subject: [PATCH] add maildb entry when domain entry is created --- src/database.js | 1 + src/maildb.js | 14 +++++++++++++- src/test/digest-test.js | 5 +++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/database.js b/src/database.js index eabb99702..f8f2be083 100644 --- a/src/database.js +++ b/src/database.js @@ -105,6 +105,7 @@ function clear(callback) { child_process.exec.bind(null, cmd), require('./clientdb.js')._addDefaultClients, require('./domaindb.js')._addDefaultDomain, + require('./maildb.js')._addDefaultDomain, require('./groupdb.js')._addDefaultGroups ], callback); } diff --git a/src/maildb.js b/src/maildb.js index 103fb991f..5fb64b3f8 100644 --- a/src/maildb.js +++ b/src/maildb.js @@ -10,10 +10,13 @@ exports = module.exports = { TYPE_USER: 'user', TYPE_APP: 'app', - TYPE_GROUP: 'group' + TYPE_GROUP: 'group', + + _addDefaultDomain: addDefaultDomain }; var assert = require('assert'), + config = require('./config.js'), database = require('./database.js'), DatabaseError = require('./databaseerror.js'), safe = require('safetydance'); @@ -107,3 +110,12 @@ function update(domain, data, callback) { callback(null); }); } + +function addDefaultDomain(callback) { + assert(config.fqdn(), 'no fqdn set in config, cannot continue'); + + add(config.fqdn(), function (error) { + if (error && error.reason !== DatabaseError.ALREADY_EXISTS) return callback(error); + callback(); + }); +} diff --git a/src/test/digest-test.js b/src/test/digest-test.js index 943818f50..9595076fb 100644 --- a/src/test/digest-test.js +++ b/src/test/digest-test.js @@ -12,6 +12,7 @@ var async = require('async'), eventlog = require('../eventlog.js'), expect = require('expect.js'), mail = require('../mail.js'), + maildb = require('../maildb.js'), mailer = require('../mailer.js'), paths = require('../paths.js'), safe = require('safetydance'), @@ -67,7 +68,7 @@ describe('digest', function () { settings.initialize, user.createOwner.bind(null, USER_0.username, USER_0.password, USER_0.email, USER_0.displayName, AUDIT_SOURCE), eventlog.add.bind(null, eventlog.ACTION_UPDATE, AUDIT_SOURCE, { boxUpdateInfo: { sourceTarballUrl: 'xx', version: '1.2.3', changelog: [ 'good stuff' ] } }), - settingsdb.set.bind(null, mail.MAIL_CONFIG_KEY, JSON.stringify({ enabled: true })), + maildb.update.bind(null, DOMAIN_0.domain, { enabled: true }), mailer._clearMailQueue ], done); }); @@ -123,7 +124,7 @@ describe('digest', function () { it('sends mail for pending update to owner account email', function (done) { updatechecker._setUpdateInfo({ box: null, apps: { 'appid': { manifest: { version: '1.2.5', changelog: 'noop\nreally' } } } }); - settingsdb.set(mail.MAIL_CONFIG_KEY, JSON.stringify({ enabled: true }), function (error) { + maildb.update(DOMAIN_0.domain, { enabled: true }, function (error) { if (error) return done(error); digest.maybeSend(function (error) {