'use server'; import BoardResponse from '@/dtos/response/forum/board/boardResponse'; import PostListRequest from '@/dtos/request/forum/board/postListRequest'; import LatestPostsRequest from '@/dtos/request/forum/board/latestPostsRequest'; import BoardListResponse from '@/dtos/response/forum/board/boardListResponse'; import PostListResponse from '@/dtos/response/forum/board/postListResponse'; import LatestPostsResponse from '@/dtos/response/forum/board/latestPostsResponse'; import { ResultDto } from '@/dtos/response/common'; import { fetchJson } from '@/lib/utils/server'; // 게시판 상세 조회 export async function fetchBoard(boardCode: string): Promise> { return await fetchJson(`/api/forum/board/${boardCode}`, { method: 'GET', headers: { 'Accept': 'application/json' } }); } // 게시판 목록 조회 export async function fetchBoardList(boardGroupCode: string): Promise> { return await fetchJson('/api/forum/board/list', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, data: { boardGroupCode } }); } // 게시판 게시글 조회 export async function fetchPostList(params: PostListRequest): Promise> { return await fetchJson(`/api/forum/board/${params.boardCode}/posts`, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, data: params }); } // 최근 게시글 조회 export async function fetchLatestPosts(params: LatestPostsRequest): Promise> { return await fetchJson(`/api/forum/board/${params.boardCode}/latest`, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, data: params }); }