add/remove mailbox entry for app

This commit is contained in:
Girish Ramakrishnan
2016-09-23 17:23:45 -07:00
parent 49baad349c
commit 6a32f89bf2

View File

@@ -58,6 +58,7 @@ var addons = require('./addons.js'),
eventlog = require('./eventlog.js'), eventlog = require('./eventlog.js'),
fs = require('fs'), fs = require('fs'),
groups = require('./groups.js'), groups = require('./groups.js'),
mailboxdb = require('./mailboxdb.js'),
manifestFormat = require('cloudron-manifestformat'), manifestFormat = require('cloudron-manifestformat'),
path = require('path'), path = require('path'),
paths = require('./paths.js'), paths = require('./paths.js'),
@@ -503,6 +504,10 @@ function install(data, auditSource, callback) {
oauthProxy: oauthProxy oauthProxy: oauthProxy
}; };
mailboxdb.add(location + '.app', appId, mailboxdb.TYPE_APP, function (error) {
if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new AppsError(AppsError.ALREADY_EXISTS, 'Mailbox already exists'));
if (error) return callback(new AppsError(AppsError.INTERNAL_ERROR, error));
appdb.add(appId, appStoreId, manifest, location, portBindings, data, function (error) { appdb.add(appId, appStoreId, manifest, location, portBindings, data, function (error) {
if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(getDuplicateErrorDetails(location, portBindings, error)); if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(getDuplicateErrorDetails(location, portBindings, error));
if (error) return callback(new AppsError(AppsError.INTERNAL_ERROR, error)); if (error) return callback(new AppsError(AppsError.INTERNAL_ERROR, error));
@@ -521,6 +526,7 @@ function install(data, auditSource, callback) {
}); });
}); });
}); });
});
} }
function configure(appId, data, auditSource, callback) { function configure(appId, data, auditSource, callback) {
@@ -850,6 +856,9 @@ function uninstall(appId, auditSource, callback) {
unpurchase(appId, result.appStoreId, function (error) { unpurchase(appId, result.appStoreId, function (error) {
if (error) return callback(error); if (error) return callback(error);
mailboxdb.delByOwnerId(appId, function (error) {
if (error && error.reason !== DatabaseError.NOT_FOUND) return callback(new AppsError(AppsError.INTERNAL_ERROR, error));
taskmanager.stopAppTask(appId, function () { taskmanager.stopAppTask(appId, function () {
appdb.setInstallationCommand(appId, appdb.ISTATE_PENDING_UNINSTALL, function (error) { appdb.setInstallationCommand(appId, appdb.ISTATE_PENDING_UNINSTALL, function (error) {
if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new AppsError(AppsError.NOT_FOUND, 'No such app')); if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new AppsError(AppsError.NOT_FOUND, 'No such app'));
@@ -862,6 +871,7 @@ function uninstall(appId, auditSource, callback) {
}); });
}); });
}); });
});
} }
function start(appId, callback) { function start(appId, callback) {