다국어 언어삭제기능
This commit is contained in:
@@ -840,6 +840,67 @@ export class MultiLangService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 언어 삭제
|
||||
*/
|
||||
async deleteLanguage(langCode: string): Promise<void> {
|
||||
try {
|
||||
logger.info("언어 삭제 시작", { langCode });
|
||||
|
||||
// 기존 언어 확인
|
||||
const checkQuery = `
|
||||
SELECT lang_code FROM language_master WHERE lang_code = $1
|
||||
`;
|
||||
const checkResult = await this.client.query(checkQuery, [langCode]);
|
||||
|
||||
if (checkResult.rows.length === 0) {
|
||||
throw new Error(`언어를 찾을 수 없습니다: ${langCode}`);
|
||||
}
|
||||
|
||||
// 트랜잭션 시작
|
||||
await this.client.query("BEGIN");
|
||||
|
||||
try {
|
||||
// 관련된 다국어 텍스트 삭제
|
||||
const deleteTextsQuery = `
|
||||
DELETE FROM multi_lang_text
|
||||
WHERE key_id IN (
|
||||
SELECT key_id FROM multi_lang_key_master
|
||||
WHERE company_code = '*' OR company_code = 'SYSTEM'
|
||||
)
|
||||
`;
|
||||
await this.client.query(deleteTextsQuery);
|
||||
|
||||
// 관련된 다국어 키 삭제 (시스템 레벨)
|
||||
const deleteKeysQuery = `
|
||||
DELETE FROM multi_lang_key_master
|
||||
WHERE company_code = '*' OR company_code = 'SYSTEM'
|
||||
`;
|
||||
await this.client.query(deleteKeysQuery);
|
||||
|
||||
// 언어 마스터 삭제
|
||||
const deleteLanguageQuery = `
|
||||
DELETE FROM language_master WHERE lang_code = $1
|
||||
`;
|
||||
await this.client.query(deleteLanguageQuery, [langCode]);
|
||||
|
||||
// 트랜잭션 커밋
|
||||
await this.client.query("COMMIT");
|
||||
|
||||
logger.info("언어 삭제 완료", { langCode });
|
||||
} catch (error) {
|
||||
// 트랜잭션 롤백
|
||||
await this.client.query("ROLLBACK");
|
||||
throw error;
|
||||
}
|
||||
} catch (error) {
|
||||
logger.error("언어 삭제 중 오류 발생:", error);
|
||||
throw new Error(
|
||||
`언어 삭제 실패: ${error instanceof Error ? error.message : "Unknown error"}`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 기본 번역 생성 (키를 그대로 반환)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user