관계도 저장 시 모달 및 이름 중복 안내 구현
This commit is contained in:
@@ -143,16 +143,36 @@ export const createDataflowDiagram = async (req: Request, res: Response) => {
|
||||
message: "관계도가 성공적으로 생성되었습니다.",
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error("관계도 생성 실패:", error);
|
||||
// 디버깅을 위한 에러 정보 출력
|
||||
logger.error("에러 디버깅:", {
|
||||
errorType: typeof error,
|
||||
errorCode: (error as any)?.code,
|
||||
errorMessage: error instanceof Error ? error.message : "Unknown error",
|
||||
errorName: (error as any)?.name,
|
||||
errorMeta: (error as any)?.meta,
|
||||
});
|
||||
|
||||
// 중복 이름 에러 처리
|
||||
if (error instanceof Error && error.message.includes("unique constraint")) {
|
||||
// 중복 이름 에러인지 먼저 확인 (로그 출력 전에)
|
||||
const isDuplicateError =
|
||||
(error && typeof error === "object" && (error as any).code === "P2002") || // Prisma unique constraint error code
|
||||
(error instanceof Error &&
|
||||
(error.message.includes("unique constraint") ||
|
||||
error.message.includes("Unique constraint") ||
|
||||
error.message.includes("duplicate key") ||
|
||||
error.message.includes("UNIQUE constraint failed") ||
|
||||
error.message.includes("unique_diagram_name_per_company")));
|
||||
|
||||
if (isDuplicateError) {
|
||||
// 중복 에러는 콘솔에 로그 출력하지 않음
|
||||
return res.status(409).json({
|
||||
success: false,
|
||||
message: "이미 존재하는 관계도 이름입니다.",
|
||||
message: "중복된 이름입니다.",
|
||||
});
|
||||
}
|
||||
|
||||
// 다른 에러만 로그 출력
|
||||
logger.error("관계도 생성 실패:", error);
|
||||
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "관계도 생성 중 오류가 발생했습니다.",
|
||||
@@ -214,6 +234,25 @@ export const updateDataflowDiagram = async (req: Request, res: Response) => {
|
||||
message: "관계도가 성공적으로 수정되었습니다.",
|
||||
});
|
||||
} catch (error) {
|
||||
// 중복 이름 에러인지 먼저 확인 (로그 출력 전에)
|
||||
const isDuplicateError =
|
||||
(error && typeof error === "object" && (error as any).code === "P2002") || // Prisma unique constraint error code
|
||||
(error instanceof Error &&
|
||||
(error.message.includes("unique constraint") ||
|
||||
error.message.includes("Unique constraint") ||
|
||||
error.message.includes("duplicate key") ||
|
||||
error.message.includes("UNIQUE constraint failed") ||
|
||||
error.message.includes("unique_diagram_name_per_company")));
|
||||
|
||||
if (isDuplicateError) {
|
||||
// 중복 에러는 콘솔에 로그 출력하지 않음
|
||||
return res.status(409).json({
|
||||
success: false,
|
||||
message: "중복된 이름입니다.",
|
||||
});
|
||||
}
|
||||
|
||||
// 다른 에러만 로그 출력
|
||||
logger.error("관계도 수정 실패:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
|
||||
Reference in New Issue
Block a user