diff --git a/packages/builder/src/components/settings/tabs/DangerZone.svelte b/packages/builder/src/components/settings/tabs/DangerZone.svelte index ad243527ce..40286a902d 100644 --- a/packages/builder/src/components/settings/tabs/DangerZone.svelte +++ b/packages/builder/src/components/settings/tabs/DangerZone.svelte @@ -1,14 +1,26 @@ diff --git a/packages/server/src/api/controllers/application.js b/packages/server/src/api/controllers/application.js index 890e573817..526c36d423 100644 --- a/packages/server/src/api/controllers/application.js +++ b/packages/server/src/api/controllers/application.js @@ -10,6 +10,7 @@ const { budibaseAppsDir } = require("../../utilities/budibaseDir") const { exec } = require("child_process") const sqrl = require("squirrelly") const setBuilderToken = require("../../utilities/builder/setBuilderToken") +const fs = require("fs-extra") exports.fetch = async function(ctx) { const db = new CouchDB(ClientDb.name(getClientId(ctx))) @@ -106,6 +107,21 @@ exports.update = async function(ctx) { ctx.body = response } +exports.delete = async function(ctx) { + const db = new CouchDB(ClientDb.name(getClientId(ctx))) + const app = await db.get(ctx.params.applicationId) + const result = await db.remove(app) + await fs.rmdir(`${budibaseAppsDir()}/${ctx.params.applicationId}`, { + recursive: true, + }) + + console.log + + ctx.status = 200 + ctx.message = `Application ${app.name} deleted successfully.` + ctx.body = result +} + const createEmptyAppPackage = async (ctx, app) => { const templateFolder = resolve( __dirname, diff --git a/packages/server/src/api/routes/application.js b/packages/server/src/api/routes/application.js index 2843770b46..65e73e95f5 100644 --- a/packages/server/src/api/routes/application.js +++ b/packages/server/src/api/routes/application.js @@ -14,5 +14,6 @@ router ) .put("/api/:applicationId", authorized(BUILDER), controller.update) .post("/api/applications", authorized(BUILDER), controller.create) + .delete("/api/:applicationId", authorized(BUILDER), controller.delete) module.exports = router