59 lines
1.9 KiB
TypeScript
59 lines
1.9 KiB
TypeScript
// import { client } from "@/shared/api";
|
|
// import { ENDPOINT } from "@/shared/config";
|
|
import {
|
|
type BoardStatisticsParams,
|
|
type BoardStatistics,
|
|
type BoardStatisticsService,
|
|
} from "../model/board-statistics-interface";
|
|
|
|
// 임시 모의 데이터
|
|
const mockBoardStatisticsData: BoardStatistics = {
|
|
totalPosts: 2456,
|
|
totalComments: 156,
|
|
averageRating: 4.2,
|
|
totalViews: 45678,
|
|
dayList: [
|
|
{ date: "1월", posts: 10, comments: 5, views: 800 },
|
|
{ date: "2월", posts: 15, comments: 8, views: 1200 },
|
|
{ date: "3월", posts: 12, comments: 10, views: 1000 },
|
|
{ date: "4월", posts: 18, comments: 15, views: 1500 },
|
|
{ date: "5월", posts: 22, comments: 20, views: 1800 },
|
|
{ date: "6월", posts: 20, comments: 18, views: 1600 },
|
|
{ date: "7월", posts: 25, comments: 22, views: 2000 },
|
|
],
|
|
boardList: [
|
|
{ boardType: "notice", boardName: "공지사항", count: 45 },
|
|
{ boardType: "faq", boardName: "FAQ", count: 120 },
|
|
{ boardType: "qna", boardName: "Q&A", count: 180 },
|
|
{ boardType: "free", boardName: "자유게시판", count: 95 },
|
|
],
|
|
statusList: [
|
|
{ status: "completed", statusName: "답변완료", count: 75 },
|
|
{ status: "waiting", statusName: "답변대기", count: 25 },
|
|
],
|
|
};
|
|
|
|
class BoardStatisticsApiService implements BoardStatisticsService {
|
|
async getBoardStatistics(
|
|
params: BoardStatisticsParams,
|
|
): Promise<BoardStatistics> {
|
|
console.log("params: ", params);
|
|
try {
|
|
// 실제 API 연동 시 아래 코드 사용
|
|
// const response = await client.get<BoardStatistics>(
|
|
// `${ENDPOINT.CMS_SERVICE.BOARD_STATISTICS}`,
|
|
// { params },
|
|
// );
|
|
// return response.data;
|
|
|
|
// 임시 모의 데이터 반환
|
|
return Promise.resolve(mockBoardStatisticsData);
|
|
} catch (error) {
|
|
console.error("게시판 통계 데이터 조회 실패:", error);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
|
|
export const BoardStatisticsApi = new BoardStatisticsApiService();
|