다국어 관리 페이지

This commit is contained in:
kjs
2025-08-25 15:12:31 +09:00
parent 6cac3dfa3f
commit 96c601a0cf
8 changed files with 1900 additions and 393 deletions

View File

@@ -665,7 +665,7 @@ export async function getLanguageList(
}
/**
* 다국어 키 목록 조회 (더미 데이터)
* 다국어 키 목록 조회
*/
export async function getLangKeyList(
req: AuthenticatedRequest,
@@ -677,59 +677,61 @@ export async function getLangKeyList(
user: req.user,
});
// 더미 데이터 반환
const langKeys = [
{
keyId: 1,
companyCode: "ILSHIN",
menuName: "사용자 관리",
langKey: "user.management.title",
description: "사용자 관리 페이지 제목",
isActive: "Y",
createdDate: new Date().toISOString(),
createdBy: "admin",
updatedDate: new Date().toISOString(),
updatedBy: "admin",
},
{
keyId: 2,
companyCode: "ILSHIN",
menuName: "메뉴 관리",
langKey: "menu.management.title",
description: "메뉴 관리 페이지 제목",
isActive: "Y",
createdDate: new Date().toISOString(),
createdBy: "admin",
updatedDate: new Date().toISOString(),
updatedBy: "admin",
},
{
keyId: 3,
companyCode: "HUTECH",
menuName: "대시보드",
langKey: "dashboard.title",
description: "대시보드 페이지 제목",
isActive: "Y",
createdDate: new Date().toISOString(),
createdBy: "admin",
updatedDate: new Date().toISOString(),
updatedBy: "admin",
},
];
// 프론트엔드에서 기대하는 응답 형식으로 변환
const response: ApiResponse<any[]> = {
success: true,
message: "다국어 키 목록 조회 성공",
data: langKeys,
};
logger.info("다국어 키 목록 조회 성공", {
totalCount: langKeys.length,
response: response,
// 실제 데이터베이스에서 데이터 조회
const client = new Client({
host: process.env.DB_HOST || "localhost",
port: parseInt(process.env.DB_PORT || "5432"),
database: process.env.DB_NAME || "ilshin",
user: process.env.DB_USER || "postgres",
password: process.env.DB_PASSWORD || "postgres",
});
res.status(200).json(response);
await client.connect();
try {
const query = `
SELECT
key_id as "keyId",
company_code as "companyCode",
menu_name as "menuName",
lang_key as "langKey",
description,
is_active as "isActive",
created_date as "createdDate",
created_by as "createdBy",
updated_date as "updatedDate",
updated_by as "updatedBy"
FROM multi_lang_key_master
ORDER BY company_code, menu_name, lang_key
`;
const result = await client.query(query);
const langKeys = result.rows.map((row) => ({
...row,
createdDate: row.createdDate
? new Date(row.createdDate).toISOString()
: undefined,
updatedDate: row.updatedDate
? new Date(row.updatedDate).toISOString()
: undefined,
}));
// 프론트엔드에서 기대하는 응답 형식으로 변환
const response: ApiResponse<any[]> = {
success: true,
message: "다국어 키 목록 조회 성공",
data: langKeys,
};
logger.info("다국어 키 목록 조회 성공", {
totalCount: langKeys.length,
response: response,
});
res.status(200).json(response);
} finally {
await client.end();
}
} catch (error) {
logger.error("다국어 키 목록 조회 실패:", error);
res.status(500).json({