diff --git a/src/routes/settings.js b/src/routes/settings.js index a80a989e0..0ad502ee1 100644 --- a/src/routes/settings.js +++ b/src/routes/settings.js @@ -127,7 +127,7 @@ function setMailConfig(req, res, next) { if (error && error.reason === SettingsError.BAD_FIELD) return next(new HttpError(400, error.message)); if (error) return next(new HttpError(500, error)); - next(new HttpSuccess(200)); + next(new HttpSuccess(202)); }); } @@ -153,7 +153,7 @@ function setMailRelay(req, res, next) { if (error && error.reason === SettingsError.BAD_FIELD) return next(new HttpError(400, error.message)); if (error) return next(new HttpError(500, error)); - next(new HttpSuccess(200)); + next(new HttpSuccess(202)); }); } @@ -178,7 +178,7 @@ function setCatchAllAddress(req, res, next) { if (error && error.reason === SettingsError.BAD_FIELD) return next(new HttpError(400, error.message)); if (error) return next(new HttpError(500, error)); - next(new HttpSuccess(200, {})); + next(new HttpSuccess(202)); }); } @@ -191,7 +191,7 @@ function setCloudronAvatar(req, res, next) { settings.setCloudronAvatar(avatar, function (error) { if (error) return next(new HttpError(500, error)); - next(new HttpSuccess(202, {})); + next(new HttpSuccess(202)); }); } diff --git a/src/routes/test/settings-test.js b/src/routes/test/settings-test.js index fd274d6aa..63d7566a6 100644 --- a/src/routes/test/settings-test.js +++ b/src/routes/test/settings-test.js @@ -299,7 +299,7 @@ describe('Settings API', function () { .query({ access_token: token }) .send({ enabled: true }) .end(function (err, res) { - expect(res.statusCode).to.equal(200); + expect(res.statusCode).to.equal(202); done(); }); }); @@ -351,7 +351,7 @@ describe('Settings API', function () { .query({ access_token: token }) .send({ enabled: true, host: 'host', port: 25, username: 'u', password: 'p', tls: true }) .end(function (err, res) { - expect(res.statusCode).to.equal(200); + expect(res.statusCode).to.equal(202); done(); }); }); @@ -402,7 +402,7 @@ describe('Settings API', function () { .query({ access_token: token }) .send({ address: [ "user1" ] }) .end(function (err, res) { - expect(res.statusCode).to.equal(200); + expect(res.statusCode).to.equal(202); done(); }); }); diff --git a/webadmin/src/js/client.js b/webadmin/src/js/client.js index 19ff1519e..abca9c835 100644 --- a/webadmin/src/js/client.js +++ b/webadmin/src/js/client.js @@ -406,7 +406,7 @@ angular.module('Application').service('Client', ['$http', 'md5', 'Notification', Client.prototype.setCatchallAddresses = function (addresses, callback) { put('/api/v1/settings/catch_all_address', { address: addresses }).success(function(data, status) { - if (status !== 200) return callback(new ClientError(status, data)); + if (status !== 202) return callback(new ClientError(status, data)); callback(null); }).error(defaultErrorHandler(callback)); }; @@ -499,7 +499,21 @@ angular.module('Application').service('Client', ['$http', 'md5', 'Notification', Client.prototype.setMailConfig = function (config, callback) { post('/api/v1/settings/mail_config', config).success(function (data, status) { - if (status !== 200) return callback(new ClientError(status, data)); + if (status !== 202) return callback(new ClientError(status, data)); + callback(null); + }).error(defaultErrorHandler(callback)); + }; + + Client.prototype.getMailRelay = function (callback) { + get('/api/v1/settings/mail_relay').success(function (data, status) { + if (status !== 200 || typeof data !== 'object') return callback(new ClientError(status, data)); + callback(null, data); + }).error(defaultErrorHandler(callback)); + }; + + Client.prototype.setMailRelay = function (config, callback) { + post('/api/v1/settings/mail_relay', config).success(function (data, status) { + if (status !== 202) return callback(new ClientError(status, data)); callback(null); }).error(defaultErrorHandler(callback)); }; diff --git a/webadmin/src/views/email.html b/webadmin/src/views/email.html index 935cde631..2c6a4236b 100644 --- a/webadmin/src/views/email.html +++ b/webadmin/src/views/email.html @@ -34,79 +34,6 @@ -