summaryrefslogtreecommitdiff
path: root/lib/menu-list/servcie.ts
diff options
context:
space:
mode:
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 등이 변경될 수 있음)