'use server'; import View from './view'; import { notFound, forbidden, unauthorized } from 'next/navigation'; import { checkAuthServer } from '@/lib/api/auth'; import { fetchBoard, fetchBoardList } from '@/lib/api/forum/board'; import { checkPermission } from '@/lib/utils/server'; import PermissionDenied from '@/app/(main)/(forum)/board/_component/PermissionDenied'; export default async function PostWrite({ searchParams }: { searchParams : Promise<{ board: string }> }) { const { board: boardCode } = await searchParams; if (!boardCode) { return forbidden(); } try { if (!await checkAuthServer()) { throw Error; } } catch { return unauthorized(); } try { // 게시판 상세 조회 const board = await fetchBoard(boardCode); if (!board.success || !board.data) { throw Error; } // 게시글 작성 권한 확인 (본인 글이면 스킵) if (!await checkPermission(board.data.boardMeta.permission.postWrite, board.data.boardManager)) { return ; } // 게시판 목록 조회 const boardList = await fetchBoardList(board.data.boardGroup.code); if (!boardList.success || !boardList.data) { throw Error; } return ( ); } catch { return notFound(); } }