From e89529a6d250f4e5eb775300e1c0b2d025a1ef46 Mon Sep 17 00:00:00 2001 From: npmrun <1549469775@qq.com> Date: Sun, 19 Apr 2026 10:58:54 +0800 Subject: [PATCH] feat(api): add GET /api/me/media/assets for media library Made-with: Cursor --- server/api/me/media/assets.get.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 server/api/me/media/assets.get.ts diff --git a/server/api/me/media/assets.get.ts b/server/api/me/media/assets.get.ts new file mode 100644 index 0000000..d48ab44 --- /dev/null +++ b/server/api/me/media/assets.get.ts @@ -0,0 +1,25 @@ +import { listUserMediaAssetsPage } from "#server/service/media"; +import { parseMeMediaAssetsQuery } from "#server/utils/me-media-assets-query"; + +export default defineWrappedResponseHandler(async (event) => { + const user = await event.context.auth.requireUser(); + const q = getQuery(event); + const { page, pageSize } = parseMeMediaAssetsQuery({ + page: typeof q.page === "string" ? q.page : undefined, + pageSize: typeof q.pageSize === "string" ? q.pageSize : undefined, + }); + + const { items, total } = await listUserMediaAssetsPage(user.id, page, pageSize); + return R.success({ + items: items.map((r) => ({ + id: r.id, + storageKey: r.storageKey, + publicPath: "/public/assets/" + r.storageKey, + mime: r.mime, + sizeBytes: r.sizeBytes, + createdAt: r.createdAt.toISOString(), + refCount: r.refCount, + })), + total, + }); +});