diff options
| author | MohamedBassem <me@mbassem.com> | 2024-04-05 23:57:57 +0100 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-04-05 23:57:57 +0100 |
| commit | 91b088db868eecc0d048e52a3529846ae4d5c580 (patch) | |
| tree | a0443f5a1cb3fccf924e48b1f480d06c612fae44 | |
| parent | 8af95fef8874a0c1d1ebbe407483f7475b4a9cd2 (diff) | |
| download | karakeep-91b088db868eecc0d048e52a3529846ae4d5c580.tar.zst | |
fix: Delete user's assets when the user is deleted
| -rw-r--r-- | packages/shared/assetdb.ts | 12 | ||||
| -rw-r--r-- | packages/trpc/routers/users.ts | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/packages/shared/assetdb.ts b/packages/shared/assetdb.ts index 8fd4da16..2973673f 100644 --- a/packages/shared/assetdb.ts +++ b/packages/shared/assetdb.ts @@ -67,3 +67,15 @@ export async function deleteAsset({ const assetDir = getAssetDir(userId, assetId); await fs.promises.rm(path.join(assetDir), { recursive: true }); } + +export async function deleteUserAssets({ userId }: { userId: string }) { + const userDir = path.join(ROOT_PATH, userId); + const dirExists = await fs.promises + .access(userDir) + .then(() => true) + .catch(() => false); + if (!dirExists) { + return; + } + await fs.promises.rm(userDir, { recursive: true }); +} diff --git a/packages/trpc/routers/users.ts b/packages/trpc/routers/users.ts index 1e7a83a6..e7f0a59d 100644 --- a/packages/trpc/routers/users.ts +++ b/packages/trpc/routers/users.ts @@ -5,6 +5,7 @@ import { z } from "zod"; import { SqliteError } from "@hoarder/db"; import { users } from "@hoarder/db/schema"; +import { deleteUserAssets } from "@hoarder/shared/assetdb"; import serverConfig from "@hoarder/shared/config"; import { hashPassword, validatePassword } from "../auth"; @@ -127,6 +128,7 @@ export const usersAppRouter = router({ if (res.changes == 0) { throw new TRPCError({ code: "NOT_FOUND" }); } + await deleteUserAssets({ userId: input.userId }); }), whoami: authedProcedure .output( |
