83 lines
2.9 KiB
TypeScript
83 lines
2.9 KiB
TypeScript
import express from "express";
|
|
import { authenticateToken } from "../middleware/authMiddleware";
|
|
import {
|
|
// 언어 관리 API
|
|
getLanguages,
|
|
createLanguage,
|
|
updateLanguage,
|
|
deleteLanguage,
|
|
toggleLanguage,
|
|
|
|
// 다국어 키 관리 API
|
|
getLangKeys,
|
|
getLangTexts,
|
|
createLangKey,
|
|
updateLangKey,
|
|
deleteLangKey,
|
|
toggleLangKey,
|
|
|
|
// 다국어 텍스트 관리 API
|
|
saveLangTexts,
|
|
getUserText,
|
|
getLangText,
|
|
getBatchTranslations,
|
|
|
|
// 카테고리 관리 API
|
|
getCategories,
|
|
getCategoryById,
|
|
getCategoryPath,
|
|
|
|
// 자동 생성 및 오버라이드 API
|
|
generateKey,
|
|
previewKey,
|
|
createOverrideKey,
|
|
getOverrideKeys,
|
|
|
|
// 화면 라벨 다국어 API
|
|
generateScreenLabelKeys,
|
|
} from "../controllers/multilangController";
|
|
|
|
const router = express.Router();
|
|
|
|
// 다국어 배치 조회 API는 인증 없이 접근 가능
|
|
router.post("/batch", getBatchTranslations);
|
|
|
|
// 나머지 모든 다국어 관리 라우트에 인증 미들웨어 적용
|
|
router.use(authenticateToken);
|
|
|
|
// 언어 관리 API
|
|
router.get("/languages", getLanguages); // 언어 목록 조회
|
|
router.post("/languages", createLanguage); // 언어 생성
|
|
router.put("/languages/:langCode", updateLanguage); // 언어 수정
|
|
router.delete("/languages/:langCode", deleteLanguage); // 언어 삭제
|
|
router.put("/languages/:langCode/toggle", toggleLanguage); // 언어 상태 토글
|
|
|
|
// 다국어 키 관리 API
|
|
router.get("/keys", getLangKeys); // 다국어 키 목록 조회
|
|
router.get("/keys/:keyId/texts", getLangTexts); // 특정 키의 다국어 텍스트 조회
|
|
router.post("/keys", createLangKey); // 다국어 키 생성
|
|
router.put("/keys/:keyId", updateLangKey); // 다국어 키 수정
|
|
router.delete("/keys/:keyId", deleteLangKey); // 다국어 키 삭제
|
|
router.put("/keys/:keyId/toggle", toggleLangKey); // 다국어 키 상태 토글
|
|
|
|
// 다국어 텍스트 관리 API
|
|
router.post("/keys/:keyId/texts", saveLangTexts); // 다국어 텍스트 저장/수정
|
|
router.get("/user-text/:companyCode/:menuCode/:langKey", getUserText); // 사용자별 다국어 텍스트 조회
|
|
router.get("/text/:companyCode/:langKey/:langCode", getLangText); // 특정 키의 다국어 텍스트 조회
|
|
|
|
// 카테고리 관리 API
|
|
router.get("/categories", getCategories); // 카테고리 트리 조회
|
|
router.get("/categories/:categoryId", getCategoryById); // 카테고리 상세 조회
|
|
router.get("/categories/:categoryId/path", getCategoryPath); // 카테고리 경로 조회
|
|
|
|
// 자동 생성 및 오버라이드 API
|
|
router.post("/keys/generate", generateKey); // 키 자동 생성
|
|
router.post("/keys/preview", previewKey); // 키 미리보기
|
|
router.post("/keys/override", createOverrideKey); // 오버라이드 키 생성
|
|
router.get("/keys/overrides/:companyCode", getOverrideKeys); // 오버라이드 키 목록 조회
|
|
|
|
// 화면 라벨 다국어 자동 생성 API
|
|
router.post("/screen-labels", generateScreenLabelKeys); // 화면 라벨 다국어 키 자동 생성
|
|
|
|
export default router;
|