diff --git a/src/appdb.js b/src/appdb.js index 424b809a0..f2693794a 100644 --- a/src/appdb.js +++ b/src/appdb.js @@ -251,6 +251,7 @@ function del(id, callback) { assert.strictEqual(typeof callback, 'function'); var queries = [ + { query: 'DELETE FROM mailboxes WHERE ownerId=?', args: [ id ] }, { query: 'DELETE FROM appPortBindings WHERE appId = ?', args: [ id ] }, { query: 'DELETE FROM apps WHERE id = ?', args: [ id ] } ]; diff --git a/src/apps.js b/src/apps.js index c0a8ede99..cdc94593c 100644 --- a/src/apps.js +++ b/src/apps.js @@ -928,18 +928,14 @@ function uninstall(appId, auditSource, callback) { unpurchase(appId, result.appStoreId, function (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 () { + 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) return callback(new AppsError(AppsError.INTERNAL_ERROR, error)); - taskmanager.stopAppTask(appId, function () { - 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) return callback(new AppsError(AppsError.INTERNAL_ERROR, error)); + eventlog.add(eventlog.ACTION_APP_UNINSTALL, auditSource, { appId: appId }); - eventlog.add(eventlog.ACTION_APP_UNINSTALL, auditSource, { appId: appId }); - - taskmanager.startAppTask(appId, callback); - }); + taskmanager.startAppTask(appId, callback); }); }); });