주요기능 Prisma ORM으로 변경
This commit is contained in:
@@ -2,7 +2,6 @@ import { Request, Response } from "express";
|
||||
import { logger } from "../utils/logger";
|
||||
import { AuthenticatedRequest } from "../types/auth";
|
||||
import { MultiLangService } from "../services/multilangService";
|
||||
import { Client } from "pg";
|
||||
import {
|
||||
CreateLanguageRequest,
|
||||
UpdateLanguageRequest,
|
||||
@@ -25,29 +24,16 @@ export const getLanguages = async (
|
||||
try {
|
||||
logger.info("언어 목록 조회 요청", { user: req.user });
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
});
|
||||
const multiLangService = new MultiLangService();
|
||||
const languages = await multiLangService.getLanguages();
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<any[]> = {
|
||||
success: true,
|
||||
message: "언어 목록 조회 성공",
|
||||
data: languages,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const languages = await multiLangService.getLanguages();
|
||||
|
||||
const response: ApiResponse<any[]> = {
|
||||
success: true,
|
||||
message: "언어 목록 조회 성공",
|
||||
data: languages,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("언어 목록 조회 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -90,33 +76,20 @@ export const createLanguage = async (
|
||||
return;
|
||||
}
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
const createdLanguage = await multiLangService.createLanguage({
|
||||
...languageData,
|
||||
createdBy: req.user?.userId || "system",
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<any> = {
|
||||
success: true,
|
||||
message: "언어가 성공적으로 생성되었습니다.",
|
||||
data: createdLanguage,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const createdLanguage = await multiLangService.createLanguage({
|
||||
...languageData,
|
||||
createdBy: req.user?.userId || "system",
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
const response: ApiResponse<any> = {
|
||||
success: true,
|
||||
message: "언어가 성공적으로 생성되었습니다.",
|
||||
data: createdLanguage,
|
||||
};
|
||||
|
||||
res.status(201).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(201).json(response);
|
||||
} catch (error) {
|
||||
logger.error("언어 생성 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -144,32 +117,19 @@ export const updateLanguage = async (
|
||||
|
||||
logger.info("언어 수정 요청", { langCode, languageData, user: req.user });
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
const updatedLanguage = await multiLangService.updateLanguage(langCode, {
|
||||
...languageData,
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<any> = {
|
||||
success: true,
|
||||
message: "언어가 성공적으로 수정되었습니다.",
|
||||
data: updatedLanguage,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const updatedLanguage = await multiLangService.updateLanguage(langCode, {
|
||||
...languageData,
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
const response: ApiResponse<any> = {
|
||||
success: true,
|
||||
message: "언어가 성공적으로 수정되었습니다.",
|
||||
data: updatedLanguage,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("언어 수정 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -195,29 +155,16 @@ export const toggleLanguage = async (
|
||||
const { langCode } = req.params;
|
||||
logger.info("언어 상태 토글 요청", { langCode, user: req.user });
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
});
|
||||
const multiLangService = new MultiLangService();
|
||||
const result = await multiLangService.toggleLanguage(langCode);
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: `언어가 ${result}되었습니다.`,
|
||||
data: result,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const result = await multiLangService.toggleLanguage(langCode);
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: `언어가 ${result}되었습니다.`,
|
||||
data: result,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("언어 상태 토글 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -246,34 +193,21 @@ export const getLangKeys = async (
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
const langKeys = await multiLangService.getLangKeys({
|
||||
companyCode: companyCode as string,
|
||||
menuCode: menuCode as string,
|
||||
keyType: keyType as string,
|
||||
searchText: searchText as string,
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<any[]> = {
|
||||
success: true,
|
||||
message: "다국어 키 목록 조회 성공",
|
||||
data: langKeys,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const langKeys = await multiLangService.getLangKeys({
|
||||
companyCode: companyCode as string,
|
||||
menuCode: menuCode as string,
|
||||
keyType: keyType as string,
|
||||
searchText: searchText as string,
|
||||
});
|
||||
|
||||
const response: ApiResponse<any[]> = {
|
||||
success: true,
|
||||
message: "다국어 키 목록 조회 성공",
|
||||
data: langKeys,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 키 목록 조회 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -299,29 +233,16 @@ export const getLangTexts = async (
|
||||
const { keyId } = req.params;
|
||||
logger.info("다국어 텍스트 조회 요청", { keyId, user: req.user });
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
});
|
||||
const multiLangService = new MultiLangService();
|
||||
const langTexts = await multiLangService.getLangTexts(parseInt(keyId));
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<any[]> = {
|
||||
success: true,
|
||||
message: "다국어 텍스트 조회 성공",
|
||||
data: langTexts,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const langTexts = await multiLangService.getLangTexts(parseInt(keyId));
|
||||
|
||||
const response: ApiResponse<any[]> = {
|
||||
success: true,
|
||||
message: "다국어 텍스트 조회 성공",
|
||||
data: langTexts,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 텍스트 조회 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -360,33 +281,20 @@ export const createLangKey = async (
|
||||
return;
|
||||
}
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
const keyId = await multiLangService.createLangKey({
|
||||
...keyData,
|
||||
createdBy: req.user?.userId || "system",
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<number> = {
|
||||
success: true,
|
||||
message: "다국어 키가 성공적으로 생성되었습니다.",
|
||||
data: keyId,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const keyId = await multiLangService.createLangKey({
|
||||
...keyData,
|
||||
createdBy: req.user?.userId || "system",
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
const response: ApiResponse<number> = {
|
||||
success: true,
|
||||
message: "다국어 키가 성공적으로 생성되었습니다.",
|
||||
data: keyId,
|
||||
};
|
||||
|
||||
res.status(201).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(201).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 키 생성 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -414,32 +322,19 @@ export const updateLangKey = async (
|
||||
|
||||
logger.info("다국어 키 수정 요청", { keyId, keyData, user: req.user });
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
await multiLangService.updateLangKey(parseInt(keyId), {
|
||||
...keyData,
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "다국어 키가 성공적으로 수정되었습니다.",
|
||||
data: "수정 완료",
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
await multiLangService.updateLangKey(parseInt(keyId), {
|
||||
...keyData,
|
||||
updatedBy: req.user?.userId || "system",
|
||||
});
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "다국어 키가 성공적으로 수정되었습니다.",
|
||||
data: "수정 완료",
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 키 수정 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -465,29 +360,16 @@ export const deleteLangKey = async (
|
||||
const { keyId } = req.params;
|
||||
logger.info("다국어 키 삭제 요청", { keyId, user: req.user });
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
});
|
||||
const multiLangService = new MultiLangService();
|
||||
await multiLangService.deleteLangKey(parseInt(keyId));
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "다국어 키가 성공적으로 삭제되었습니다.",
|
||||
data: "삭제 완료",
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
await multiLangService.deleteLangKey(parseInt(keyId));
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "다국어 키가 성공적으로 삭제되었습니다.",
|
||||
data: "삭제 완료",
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 키 삭제 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -513,29 +395,16 @@ export const toggleLangKey = async (
|
||||
const { keyId } = req.params;
|
||||
logger.info("다국어 키 상태 토글 요청", { keyId, user: req.user });
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
});
|
||||
const multiLangService = new MultiLangService();
|
||||
const result = await multiLangService.toggleLangKey(parseInt(keyId));
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: `다국어 키가 ${result}되었습니다.`,
|
||||
data: result,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const result = await multiLangService.toggleLangKey(parseInt(keyId));
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: `다국어 키가 ${result}되었습니다.`,
|
||||
data: result,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 키 상태 토글 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -580,35 +449,22 @@ export const saveLangTexts = async (
|
||||
return;
|
||||
}
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
await multiLangService.saveLangTexts(parseInt(keyId), {
|
||||
texts: textData.texts.map((text) => ({
|
||||
...text,
|
||||
createdBy: req.user?.userId || "system",
|
||||
updatedBy: req.user?.userId || "system",
|
||||
})),
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "다국어 텍스트가 성공적으로 저장되었습니다.",
|
||||
data: "저장 완료",
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
await multiLangService.saveLangTexts(parseInt(keyId), {
|
||||
texts: textData.texts.map((text) => ({
|
||||
...text,
|
||||
createdBy: req.user?.userId || "system",
|
||||
updatedBy: req.user?.userId || "system",
|
||||
})),
|
||||
});
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "다국어 텍스트가 성공적으로 저장되었습니다.",
|
||||
data: "저장 완료",
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 텍스트 저장 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -654,34 +510,21 @@ export const getUserText = async (
|
||||
return;
|
||||
}
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
const langText = await multiLangService.getUserText({
|
||||
companyCode,
|
||||
menuCode,
|
||||
langKey,
|
||||
userLang: userLang as string,
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "사용자별 다국어 텍스트 조회 성공",
|
||||
data: langText,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const langText = await multiLangService.getUserText({
|
||||
companyCode,
|
||||
menuCode,
|
||||
langKey,
|
||||
userLang: userLang as string,
|
||||
});
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "사용자별 다국어 텍스트 조회 성공",
|
||||
data: langText,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("사용자별 다국어 텍스트 조회 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -713,33 +556,20 @@ export const getLangText = async (
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
});
|
||||
const multiLangService = new MultiLangService();
|
||||
const langText = await multiLangService.getLangText(
|
||||
companyCode,
|
||||
langKey,
|
||||
langCode
|
||||
);
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "특정 키의 다국어 텍스트 조회 성공",
|
||||
data: langText,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const langText = await multiLangService.getLangText(
|
||||
companyCode,
|
||||
langKey,
|
||||
langCode
|
||||
);
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "특정 키의 다국어 텍스트 조회 성공",
|
||||
data: langText,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("특정 키의 다국어 텍스트 조회 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -777,29 +607,16 @@ export const deleteLanguage = async (
|
||||
return;
|
||||
}
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
});
|
||||
const multiLangService = new MultiLangService();
|
||||
await multiLangService.deleteLanguage(langCode);
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "언어가 성공적으로 삭제되었습니다.",
|
||||
data: "삭제 완료",
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
await multiLangService.deleteLanguage(langCode);
|
||||
|
||||
const response: ApiResponse<string> = {
|
||||
success: true,
|
||||
message: "언어가 성공적으로 삭제되었습니다.",
|
||||
data: "삭제 완료",
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("언어 삭제 실패:", error);
|
||||
res.status(500).json({
|
||||
@@ -866,34 +683,21 @@ export const getBatchTranslations = async (
|
||||
return;
|
||||
}
|
||||
|
||||
// PostgreSQL 클라이언트 생성
|
||||
const client = new Client({
|
||||
connectionString:
|
||||
process.env.DATABASE_URL ||
|
||||
"postgresql://postgres:postgres@localhost:5432/ilshin",
|
||||
const multiLangService = new MultiLangService();
|
||||
const translations = await multiLangService.getBatchTranslations({
|
||||
companyCode: finalCompanyCode as string,
|
||||
menuCode: finalMenuCode as string,
|
||||
userLang: finalUserLang as string,
|
||||
langKeys,
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
const response: ApiResponse<Record<string, string>> = {
|
||||
success: true,
|
||||
message: "다국어 텍스트 배치 조회 성공",
|
||||
data: translations,
|
||||
};
|
||||
|
||||
try {
|
||||
const multiLangService = new MultiLangService(client);
|
||||
const translations = await multiLangService.getBatchTranslations({
|
||||
companyCode: finalCompanyCode as string,
|
||||
menuCode: finalMenuCode as string,
|
||||
userLang: finalUserLang as string,
|
||||
langKeys,
|
||||
});
|
||||
|
||||
const response: ApiResponse<Record<string, string>> = {
|
||||
success: true,
|
||||
message: "다국어 텍스트 배치 조회 성공",
|
||||
data: translations,
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} finally {
|
||||
await client.end();
|
||||
}
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("다국어 텍스트 배치 조회 실패:", error);
|
||||
res.status(500).json({
|
||||
|
||||
Reference in New Issue
Block a user