26 lines
1021 B
JavaScript
26 lines
1021 B
JavaScript
import { createError, getQuery, getRouterParam } from 'h3'
|
|
import { z } from 'zod'
|
|
import { requireAdminSession } from '../../../../../utils/admin-auth'
|
|
import { listAdminMemberPosts } from '../../../../../repositories/content-repository'
|
|
|
|
const querySchema = z.object({
|
|
memberId: z.string().uuid(),
|
|
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 listAdminMemberPosts(result.data)
|
|
})
|