|
|
@ -1,6 +1,8 @@ |
|
|
import { dbGlobal } from "drizzle-pkg/lib/db"; |
|
|
import { dbGlobal } from "drizzle-pkg/lib/db"; |
|
|
import { users } from "drizzle-pkg/lib/schema/auth"; |
|
|
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"; |
|
|
import { requireAdmin } from "#server/utils/admin-guard"; |
|
|
|
|
|
|
|
|
export default defineWrappedResponseHandler(async (event) => { |
|
|
export default defineWrappedResponseHandler(async (event) => { |
|
|
@ -19,6 +21,15 @@ export default defineWrappedResponseHandler(async (event) => { |
|
|
status: users.status, |
|
|
status: users.status, |
|
|
publicSlug: users.publicSlug, |
|
|
publicSlug: users.publicSlug, |
|
|
createdAt: users.createdAt, |
|
|
createdAt: users.createdAt, |
|
|
|
|
|
postCount: sql<number>`(select count(*) from ${posts} where ${posts.userId} = ${users.id})`.mapWith( |
|
|
|
|
|
Number, |
|
|
|
|
|
), |
|
|
|
|
|
timelineEventCount: sql<number>`(select count(*) from ${timelineEvents} where ${timelineEvents.userId} = ${users.id})`.mapWith( |
|
|
|
|
|
Number, |
|
|
|
|
|
), |
|
|
|
|
|
rssFeedCount: sql<number>`(select count(*) from ${rssFeeds} where ${rssFeeds.userId} = ${users.id})`.mapWith( |
|
|
|
|
|
Number, |
|
|
|
|
|
), |
|
|
}) |
|
|
}) |
|
|
.from(users) |
|
|
.from(users) |
|
|
.orderBy(desc(users.id)) |
|
|
.orderBy(desc(users.id)) |
|
|
|