v1.12.24 멤버 작성 이력 통합 표 및 종류 필터 추가
This commit is contained in:
26
server/routes/admin/api/members/[id]/activity.get.js
Normal file
26
server/routes/admin/api/members/[id]/activity.get.js
Normal file
@@ -0,0 +1,26 @@
|
||||
import { createError, getQuery, getRouterParam } from 'h3'
|
||||
import { z } from 'zod'
|
||||
import { requireAdminSession } from '../../../../../utils/admin-auth'
|
||||
import { listMemberActivityForAdmin } from '../../../../../repositories/member-activity-repository'
|
||||
|
||||
const querySchema = z.object({
|
||||
memberId: z.string().uuid(),
|
||||
type: z.enum(['all', 'post', 'comment']).default('all'),
|
||||
q: z.string().trim().max(200).default(''),
|
||||
page: z.coerce.number().int().min(1).max(1000000).default(1),
|
||||
pageSize: z.coerce.number().int().min(1).max(100).default(10)
|
||||
})
|
||||
|
||||
/**
|
||||
* 관리자 회원 작성 이력을 게시글·댓글 통합 페이지로 조회한다.
|
||||
* @param {import('h3').H3Event} event - 요청 이벤트
|
||||
* @returns {Promise<Object>} 통합 작성 이력
|
||||
*/
|
||||
export default defineEventHandler((event) => {
|
||||
requireAdminSession(event)
|
||||
const result = querySchema.safeParse({ ...getQuery(event), memberId: getRouterParam(event, 'id') })
|
||||
if (!result.success) {
|
||||
throw createError({ statusCode: 400, message: '작성 이력 조회 조건이 올바르지 않습니다.' })
|
||||
}
|
||||
return listMemberActivityForAdmin(result.data)
|
||||
})
|
||||
Reference in New Issue
Block a user