Files
sori.studio/server/routes/admin/api/comments.get.js

25 lines
888 B
JavaScript

import { createError, getQuery } from 'h3'
import { z } from 'zod'
import { requireAdminSession } from '../../../utils/admin-auth'
import { listAdminComments } from '../../../repositories/comment-repository'
const querySchema = z.object({
memberId: z.string().uuid().optional(),
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))
if (!result.success) {
throw createError({ statusCode: 400, message: '댓글 조회 조건이 올바르지 않습니다.' })
}
return listAdminComments(result.data)
})