diff --git a/server/api/admin/users.get.ts b/server/api/admin/users.get.ts index dcca9d6..4625c5e 100644 --- a/server/api/admin/users.get.ts +++ b/server/api/admin/users.get.ts @@ -1,6 +1,8 @@ import { dbGlobal } from "drizzle-pkg/lib/db"; import { users } from "drizzle-pkg/lib/schema/auth"; -import { desc } from "drizzle-orm"; +import { posts, timelineEvents } from "drizzle-pkg/lib/schema/content"; +import { rssFeeds } from "drizzle-pkg/lib/schema/rss"; +import { desc, sql } from "drizzle-orm"; import { requireAdmin } from "#server/utils/admin-guard"; export default defineWrappedResponseHandler(async (event) => { @@ -19,6 +21,15 @@ export default defineWrappedResponseHandler(async (event) => { status: users.status, publicSlug: users.publicSlug, createdAt: users.createdAt, + postCount: sql`(select count(*) from ${posts} where ${posts.userId} = ${users.id})`.mapWith( + Number, + ), + timelineEventCount: sql`(select count(*) from ${timelineEvents} where ${timelineEvents.userId} = ${users.id})`.mapWith( + Number, + ), + rssFeedCount: sql`(select count(*) from ${rssFeeds} where ${rssFeeds.userId} = ${users.id})`.mapWith( + Number, + ), }) .from(users) .orderBy(desc(users.id))