27 lines
787 B
JavaScript
27 lines
787 B
JavaScript
import { getPostBySlug } from '../../repositories/content-repository'
|
|
import { canAccessMembershipContent } from '../../repositories/member-repository'
|
|
import { getMemberSession } from '../../utils/member-auth'
|
|
|
|
/**
|
|
* 공개 게시물 상세 API
|
|
* @param {import('h3').H3Event} event - 요청 이벤트
|
|
* @returns {Object} 게시물 상세
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
const slug = getRouterParam(event, 'slug')
|
|
const session = getMemberSession(event)
|
|
const includeMembership = await canAccessMembershipContent(session?.userId)
|
|
const post = await getPostBySlug(slug, {
|
|
includeMembership
|
|
})
|
|
|
|
if (!post) {
|
|
throw createError({
|
|
statusCode: 404,
|
|
statusMessage: '게시물을 찾을 수 없습니다'
|
|
})
|
|
}
|
|
|
|
return post
|
|
})
|