summaryrefslogtreecommitdiff
path: root/lib/menu-list/servcie.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-08-21 06:57:36 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-08-21 06:57:36 +0000
commit02b1cf005cf3e1df64183d20ba42930eb2767a9f (patch)
treee932c54d5260b0e6fda2b46be2a6ba1c3ee30434 /lib/menu-list/servcie.ts
parentd78378ecd7ceede1429359f8058c7a99ac34b1b7 (diff)
(대표님, 최겸) 설계메뉴추가, 작업사항 업데이트
설계메뉴 - 문서관리 설계메뉴 - 벤더 데이터 gtc 메뉴 업데이트 정보시스템 - 메뉴리스트 및 정보 업데이트 파일 라우트 업데이트 엑셀임포트 개선 기본계약 개선 벤더 가입과정 변경 및 개선 벤더 기본정보 - pq 돌체 오류 수정 및 개선 벤더 로그인 과정 이메일 오류 수정
Diffstat (limited to 'lib/menu-list/servcie.ts')
-rw-r--r--lib/menu-list/servcie.ts61
1 files changed, 36 insertions, 25 deletions
diff --git a/lib/menu-list/servcie.ts b/lib/menu-list/servcie.ts
index 8686bf43..cd414ab4 100644
--- a/lib/menu-list/servcie.ts
+++ b/lib/menu-list/servcie.ts
@@ -3,7 +3,7 @@
"use server";
import db from "@/db/db";
-import { menuAssignments, users } from "@/db/schema";
+import { menuAssignments, users, pageInformation, notice } from "@/db/schema";
import { eq, and } from "drizzle-orm";
import { revalidatePath, revalidateTag } from "next/cache";
import { mainNav, mainNavVendor, additionalNav, additionalNavVendor } from "@/config/menuConfig";
@@ -27,10 +27,10 @@ function extractMenusFromConfig(): MenuData[] {
section.items.forEach(item => {
menus.push({
menuPath: item.href,
- menuTitle: item.title,
- menuDescription: item.description,
- menuGroup: item.group,
- sectionTitle: section.title,
+ menuTitle: item.titleKey,
+ menuDescription: item.descriptionKey,
+ menuGroup: item.groupKey,
+ sectionTitle: section.titleKey,
domain: "evcp"
});
});
@@ -40,8 +40,8 @@ function extractMenusFromConfig(): MenuData[] {
additionalNav.forEach(item => {
menus.push({
menuPath: item.href,
- menuTitle: item.title,
- menuDescription: item.description,
+ menuTitle: item.titleKey,
+ menuDescription: item.descriptionKey,
menuGroup: undefined,
sectionTitle: "추가 메뉴",
domain: "evcp"
@@ -53,10 +53,10 @@ function extractMenusFromConfig(): MenuData[] {
section.items.forEach(item => {
menus.push({
menuPath: item.href,
- menuTitle: item.title,
- menuDescription: item.description,
- menuGroup: item.group,
- sectionTitle: section.title,
+ menuTitle: item.titleKey,
+ menuDescription: item.descriptionKey,
+ menuGroup: item.groupKey,
+ sectionTitle: section.titleKey,
domain: "partners"
});
});
@@ -66,8 +66,8 @@ function extractMenusFromConfig(): MenuData[] {
additionalNavVendor.forEach(item => {
menus.push({
menuPath: item.href,
- menuTitle: item.title,
- menuDescription: item.description,
+ menuTitle: item.titleKey,
+ menuDescription: item.descriptionKey,
menuGroup: undefined,
sectionTitle: "추가 메뉴",
domain: "partners"
@@ -84,23 +84,34 @@ export async function initializeMenuAssignments() {
const existingMenus = await db.select().from(menuAssignments);
const existingPaths = new Set(existingMenus.map(m => m.menuPath));
- // 새로운 메뉴만 추가
+ // 새로운 메뉴만 추가 (특정 경로 예외처리)
const newMenus = configMenus.filter(menu => !existingPaths.has(menu.menuPath));
console.log(newMenus, newMenus)
if (newMenus.length > 0) {
- await db.insert(menuAssignments).values(
- newMenus.map(menu => ({
- menuPath: menu.menuPath,
- menuTitle: menu.menuTitle,
- menuDescription: menu.menuDescription || null,
- menuGroup: menu.menuGroup || null,
- sectionTitle: menu.sectionTitle,
- domain: menu.domain,
- isActive: true,
- }))
- );
+ // 개별적으로 insert하여 중복 오류 처리
+ for (const menu of newMenus) {
+ try {
+ await db.insert(menuAssignments).values({
+ menuPath: menu.menuPath,
+ menuTitle: menu.menuTitle,
+ menuDescription: menu.menuDescription || null,
+ menuGroup: menu.menuGroup || null,
+ sectionTitle: menu.sectionTitle,
+ domain: menu.domain,
+ isActive: true,
+ });
+ } catch (insertError: any) {
+ // /partners/vendor-data 경로의 중복 오류는 무시
+ if (insertError?.code === '23505' && menu.menuPath === '/partners/vendor-data') {
+ console.warn(`중복 메뉴 경로 건너뛰기: ${menu.menuPath}`);
+ continue;
+ }
+ // 다른 오류는 다시 throw
+ throw insertError;
+ }
+ }
}
// 기존 메뉴 정보 업데이트 (title, description 등이 변경될 수 있음)