관리자 인기 지표와 회원 핵심 지표를 보강한다
This commit is contained in:
@@ -350,6 +350,8 @@ router.get('/tierlists', requireAdmin, async (req, res) => {
|
||||
const schema = z.object({
|
||||
q: z.string().trim().max(120).optional().default(''),
|
||||
topicId: z.string().trim().max(120).optional().default(''),
|
||||
sort: z.enum(['recent', 'created', 'favorites']).optional().default('recent'),
|
||||
minFavorites: z.coerce.number().int().min(0).max(1000000).optional().default(0),
|
||||
page: z.coerce.number().int().min(1).optional().default(1),
|
||||
limit: z.coerce.number().int().min(1).max(200).optional().default(50),
|
||||
})
|
||||
@@ -359,6 +361,8 @@ router.get('/tierlists', requireAdmin, async (req, res) => {
|
||||
const result = await listAdminTierLists({
|
||||
queryText: parsed.data.q,
|
||||
topicId: parsed.data.topicId,
|
||||
sort: parsed.data.sort,
|
||||
minFavorites: parsed.data.minFavorites,
|
||||
page: parsed.data.page,
|
||||
limit: parsed.data.limit,
|
||||
currentUserId: req.session?.userId || '',
|
||||
@@ -370,6 +374,7 @@ router.get('/tierlists/stats', requireAdmin, async (req, res) => {
|
||||
const schema = z.object({
|
||||
q: z.string().trim().max(120).optional().default(''),
|
||||
topicId: z.string().trim().max(120).optional().default(''),
|
||||
minFavorites: z.coerce.number().int().min(0).max(1000000).optional().default(0),
|
||||
})
|
||||
const parsed = schema.safeParse(req.query)
|
||||
if (!parsed.success) return res.status(400).json({ error: 'bad_request' })
|
||||
@@ -377,6 +382,7 @@ router.get('/tierlists/stats', requireAdmin, async (req, res) => {
|
||||
const result = await summarizeAdminTierLists({
|
||||
queryText: parsed.data.q,
|
||||
topicId: parsed.data.topicId,
|
||||
minFavorites: parsed.data.minFavorites,
|
||||
})
|
||||
res.json(result)
|
||||
})
|
||||
@@ -970,7 +976,7 @@ router.delete('/custom-items', requireAdmin, async (req, res) => {
|
||||
router.get('/users', requireAdmin, async (req, res) => {
|
||||
const schema = z.object({
|
||||
q: z.string().trim().max(120).optional().default(''),
|
||||
sort: z.enum(['recent', 'created', 'tierlists']).optional().default('recent'),
|
||||
sort: z.enum(['recent', 'created', 'tierlists', 'followers', 'favorites']).optional().default('recent'),
|
||||
direction: z.enum(['asc', 'desc']).optional().default('desc'),
|
||||
})
|
||||
const parsed = schema.safeParse(req.query)
|
||||
|
||||
Reference in New Issue
Block a user