From 26f222525d8a671e0ddcac0729c893e575da07b3 Mon Sep 17 00:00:00 2001 From: bicochan Date: Thu, 31 Jul 2025 11:48:27 +0900 Subject: [PATCH] =?UTF-8?q?[apps/cs]=20refactor:=20=EC=A0=91=EC=86=8D=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/cs/src/app/index.tsx | 2 +- apps/cs/src/app/providers/index.ts | 1 - .../api/connection-log-service.ts | 20 +++++++++++++++---- apps/cs/src/entities/connection-log/index.ts | 6 ++++++ .../model/connection-log-interface.ts | 20 +++++++++++++++++-- .../pages/user-statistics/model/chart-data.ts | 2 +- .../user-statistics/model/table-columns.ts | 2 +- .../ui/user-statistics-page.tsx | 8 +++++--- 8 files changed, 48 insertions(+), 13 deletions(-) delete mode 100644 apps/cs/src/app/providers/index.ts rename apps/cs/src/{pages/user-statistics => entities/connection-log}/api/connection-log-service.ts (63%) create mode 100644 apps/cs/src/entities/connection-log/index.ts rename apps/cs/src/{pages/user-statistics => entities/connection-log}/model/connection-log-interface.ts (74%) diff --git a/apps/cs/src/app/index.tsx b/apps/cs/src/app/index.tsx index 692b55ef0..6ba1e325a 100644 --- a/apps/cs/src/app/index.tsx +++ b/apps/cs/src/app/index.tsx @@ -2,8 +2,8 @@ import "./styles/base.css"; import "./styles/components.css"; import "@fontsource-variable/noto-sans-kr"; -import { AppProvider } from "./providers"; import { cookies } from "next/headers"; +import { AppProvider } from "./providers/app-provider"; const App = async ({ children }: Readonly<{ children: React.ReactNode }>) => { const theme = (await cookies()).get("site-theme-key"); diff --git a/apps/cs/src/app/providers/index.ts b/apps/cs/src/app/providers/index.ts deleted file mode 100644 index 15f99b7fd..000000000 --- a/apps/cs/src/app/providers/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { AppProvider } from "./app-provider"; diff --git a/apps/cs/src/pages/user-statistics/api/connection-log-service.ts b/apps/cs/src/entities/connection-log/api/connection-log-service.ts similarity index 63% rename from apps/cs/src/pages/user-statistics/api/connection-log-service.ts rename to apps/cs/src/entities/connection-log/api/connection-log-service.ts index 0e2daeb5b..0b4cc55ad 100644 --- a/apps/cs/src/pages/user-statistics/api/connection-log-service.ts +++ b/apps/cs/src/entities/connection-log/api/connection-log-service.ts @@ -2,17 +2,19 @@ import { client } from "@/shared/api"; import { ENDPOINT } from "@/shared/config"; import { type ConnectionLogParams, - type ConnectionLogList, type ConnectionStatisticsParams, type ConnectionStatistics, type ConnectionLogService, + type ConnectionLogPageList, + type ConnectionLogPayload, + type ConnectionLog, } from "../model/connection-log-interface"; class ConnectionLogApiService implements ConnectionLogService { - async getConnectionLog( + async getConnectionLogPage( params: ConnectionLogParams, - ): Promise { - const response = await client.get( + ): Promise { + const response = await client.get( `${ENDPOINT.CMS_SERVICE.CONNECTION_LOG}`, { params }, ); @@ -28,6 +30,16 @@ class ConnectionLogApiService implements ConnectionLogService { ); return response.data; } + + async saveConnectionLog( + payload: ConnectionLogPayload, + ): Promise { + const response = await client.post( + `${ENDPOINT.CMS_SERVICE.CONNECTION_LOG}`, + payload, + ); + return response.data; + } } export const ConnectionLogApi = new ConnectionLogApiService(); diff --git a/apps/cs/src/entities/connection-log/index.ts b/apps/cs/src/entities/connection-log/index.ts new file mode 100644 index 000000000..d9c61a988 --- /dev/null +++ b/apps/cs/src/entities/connection-log/index.ts @@ -0,0 +1,6 @@ +export { ConnectionLogApi } from "./api/connection-log-service"; +export type { + ConnectionLog, + ConnectionStatistics, + ConnectionStatisticsParams, +} from "./model/connection-log-interface"; diff --git a/apps/cs/src/pages/user-statistics/model/connection-log-interface.ts b/apps/cs/src/entities/connection-log/model/connection-log-interface.ts similarity index 74% rename from apps/cs/src/pages/user-statistics/model/connection-log-interface.ts rename to apps/cs/src/entities/connection-log/model/connection-log-interface.ts index 6fbf4dc15..aed70873f 100644 --- a/apps/cs/src/pages/user-statistics/model/connection-log-interface.ts +++ b/apps/cs/src/entities/connection-log/model/connection-log-interface.ts @@ -22,11 +22,24 @@ export interface ConnectionLog { menuCd: number; siteId: string; urlPath: string; +} + +export interface ConnectionLogList extends ConnectionLog { siteNm: string; menuNm: string; wbsrKndNm: string; } +export interface ConnectionLogPayload { + cntnId?: string; + cntnIp?: string; + cntnRgn?: string; + wbsrKnd?: string; + menuCd?: number; + siteId?: string; + urlPath: string; +} + export interface ConnectionStatisticsParams { keywordType?: string; keyword?: string; @@ -62,11 +75,14 @@ export interface ConnectionStatistics { browserList: BrowserConnectionStatistics[]; } -export type ConnectionLogList = PageableList; +export type ConnectionLogPageList = PageableList; export interface ConnectionLogService { - getConnectionLog(params: ConnectionLogParams): Promise; + getConnectionLogPage( + params: ConnectionLogParams, + ): Promise; getConnectionStatistics( params: ConnectionStatisticsParams, ): Promise; + saveConnectionLog(payload: ConnectionLogPayload): Promise; } diff --git a/apps/cs/src/pages/user-statistics/model/chart-data.ts b/apps/cs/src/pages/user-statistics/model/chart-data.ts index 455dcac56..87a5322c1 100644 --- a/apps/cs/src/pages/user-statistics/model/chart-data.ts +++ b/apps/cs/src/pages/user-statistics/model/chart-data.ts @@ -1,6 +1,6 @@ import type { ChartData, ChartOptions } from "chart.js"; import { getCssVariableValue } from "@common/components"; -import type { ConnectionStatistics } from "./connection-log-interface"; +import type { ConnectionStatistics } from "@/entities/connection-log"; export const chartData = { day: ( diff --git a/apps/cs/src/pages/user-statistics/model/table-columns.ts b/apps/cs/src/pages/user-statistics/model/table-columns.ts index 09fe58adf..8530345d3 100644 --- a/apps/cs/src/pages/user-statistics/model/table-columns.ts +++ b/apps/cs/src/pages/user-statistics/model/table-columns.ts @@ -1,5 +1,5 @@ import type { ColumnDef } from "@tanstack/react-table"; -import type { ConnectionLog } from "./connection-log-interface"; +import type { ConnectionLog } from "@/entities/connection-log"; import dayjs from "dayjs"; export const columns: ColumnDef[] = [ diff --git a/apps/cs/src/pages/user-statistics/ui/user-statistics-page.tsx b/apps/cs/src/pages/user-statistics/ui/user-statistics-page.tsx index 801ca5eb0..9ddfdd124 100644 --- a/apps/cs/src/pages/user-statistics/ui/user-statistics-page.tsx +++ b/apps/cs/src/pages/user-statistics/ui/user-statistics-page.tsx @@ -27,15 +27,17 @@ import { SelectTrigger, SelectValue, } from "@common/components"; +import { + ConnectionLogApi, + type ConnectionStatisticsParams, +} from "@/entities/connection-log"; import { SiteSelect } from "@/entities/site"; import { useDataTable } from "@/shared/lib"; import { ENDPOINT } from "@/shared/config"; import { NoData } from "@/shared/ui/no-data"; import { InputDateRangePicker } from "@/shared/ui/input-date-range-picker"; -import { ConnectionLogApi } from "../api/connection-log-service"; import { chartData } from "../model/chart-data"; import { columns } from "../model/table-columns"; -import type { ConnectionStatisticsParams } from "../model/connection-log-interface"; ChartJS.register( CategoryScale, @@ -80,7 +82,7 @@ function UserStatisticsPage() { const query = useQuery({ queryKey: [ENDPOINT.CMS_SERVICE.CONNECTION_LOG, searchParams], queryFn: () => - ConnectionLogApi.getConnectionLog({ + ConnectionLogApi.getConnectionLogPage({ ...searchParams, }), placeholderData: keepPreviousData,