diff options
| author | MohamedBassem <me@mbassem.com> | 2024-10-06 14:33:40 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-10-06 15:51:45 +0000 |
| commit | 1e5c575e16c8a9e6bd7592e83bea53af7f359e15 (patch) | |
| tree | d706b7d0dad309e1c4e5ede15fcae8a5e2547c8a /apps/web/app | |
| parent | db2d346cd6c265d8e7c69383c6de03bf5f6252f0 (diff) | |
| download | karakeep-1e5c575e16c8a9e6bd7592e83bea53af7f359e15.tar.zst | |
refactor: Start tracking bookmark assets in the assets table
Diffstat (limited to 'apps/web/app')
| -rw-r--r-- | apps/web/app/api/assets/[assetId]/route.ts | 11 | ||||
| -rw-r--r-- | apps/web/app/api/assets/route.ts | 17 |
2 files changed, 27 insertions, 1 deletions
diff --git a/apps/web/app/api/assets/[assetId]/route.ts b/apps/web/app/api/assets/[assetId]/route.ts index f3cf1ab4..73237d8d 100644 --- a/apps/web/app/api/assets/[assetId]/route.ts +++ b/apps/web/app/api/assets/[assetId]/route.ts @@ -1,5 +1,7 @@ import { createContextFromRequest } from "@/server/api/client"; +import { and, eq } from "drizzle-orm"; +import { assets } from "@hoarder/db/schema"; import { readAsset } from "@hoarder/shared/assetdb"; export const dynamic = "force-dynamic"; @@ -11,6 +13,15 @@ export async function GET( if (!ctx.user) { return Response.json({ error: "Unauthorized" }, { status: 401 }); } + + const assetDb = await ctx.db.query.assets.findFirst({ + where: and(eq(assets.id, params.assetId), eq(assets.userId, ctx.user.id)), + }); + + if (!assetDb) { + return Response.json({ error: "Asset not found" }, { status: 404 }); + } + const { asset, metadata } = await readAsset({ userId: ctx.user.id, assetId: params.assetId, diff --git a/apps/web/app/api/assets/route.ts b/apps/web/app/api/assets/route.ts index 9028f556..0e52ff93 100644 --- a/apps/web/app/api/assets/route.ts +++ b/apps/web/app/api/assets/route.ts @@ -2,6 +2,7 @@ import { createContextFromRequest } from "@/server/api/client"; import { TRPCError } from "@trpc/server"; import type { ZUploadResponse } from "@hoarder/shared/types/uploads"; +import { assets, AssetTypes } from "@hoarder/db/schema"; import { newAssetId, saveAsset, @@ -43,8 +44,22 @@ export async function POST(request: Request) { return Response.json({ error: "Bad request" }, { status: 400 }); } - const assetId = newAssetId(); const fileName = data.name; + const [assetDb] = await ctx.db + .insert(assets) + .values({ + id: newAssetId(), + // Initially, uploads are uploaded for unknown purpose + // And without an attached bookmark. + assetType: AssetTypes.UNKNOWN, + bookmarkId: null, + userId: ctx.user.id, + contentType, + size: data.size, + fileName, + }) + .returning(); + const assetId = assetDb.id; await saveAsset({ userId: ctx.user.id, |
