데이터 관계도 삭제, 복사 구현
This commit is contained in:
@@ -718,3 +718,111 @@ export async function getDiagramRelationships(
|
||||
res.status(500).json(response);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 관계도 복사
|
||||
*/
|
||||
export async function copyDiagram(
|
||||
req: AuthenticatedRequest,
|
||||
res: Response
|
||||
): Promise<void> {
|
||||
try {
|
||||
const { diagramName } = req.params;
|
||||
const companyCode = (req.user as any)?.company_code || "*";
|
||||
|
||||
if (!diagramName) {
|
||||
const response: ApiResponse<null> = {
|
||||
success: false,
|
||||
message: "관계도 이름이 필요합니다.",
|
||||
error: {
|
||||
code: "MISSING_DIAGRAM_NAME",
|
||||
details: "diagramName 파라미터가 필요합니다.",
|
||||
},
|
||||
};
|
||||
res.status(400).json(response);
|
||||
return;
|
||||
}
|
||||
|
||||
const dataflowService = new DataflowService();
|
||||
const newDiagramName = await dataflowService.copyDiagram(
|
||||
companyCode,
|
||||
decodeURIComponent(diagramName)
|
||||
);
|
||||
|
||||
const response: ApiResponse<{ newDiagramName: string }> = {
|
||||
success: true,
|
||||
message: "관계도가 성공적으로 복사되었습니다.",
|
||||
data: { newDiagramName },
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("관계도 복사 실패:", error);
|
||||
const response: ApiResponse<null> = {
|
||||
success: false,
|
||||
message: "관계도 복사에 실패했습니다.",
|
||||
error: {
|
||||
code: "DIAGRAM_COPY_FAILED",
|
||||
details:
|
||||
error instanceof Error
|
||||
? error.message
|
||||
: "알 수 없는 오류가 발생했습니다.",
|
||||
},
|
||||
};
|
||||
res.status(500).json(response);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 관계도 삭제
|
||||
*/
|
||||
export async function deleteDiagram(
|
||||
req: AuthenticatedRequest,
|
||||
res: Response
|
||||
): Promise<void> {
|
||||
try {
|
||||
const { diagramName } = req.params;
|
||||
const companyCode = (req.user as any)?.company_code || "*";
|
||||
|
||||
if (!diagramName) {
|
||||
const response: ApiResponse<null> = {
|
||||
success: false,
|
||||
message: "관계도 이름이 필요합니다.",
|
||||
error: {
|
||||
code: "MISSING_DIAGRAM_NAME",
|
||||
details: "diagramName 파라미터가 필요합니다.",
|
||||
},
|
||||
};
|
||||
res.status(400).json(response);
|
||||
return;
|
||||
}
|
||||
|
||||
const dataflowService = new DataflowService();
|
||||
const deletedCount = await dataflowService.deleteDiagram(
|
||||
companyCode,
|
||||
decodeURIComponent(diagramName)
|
||||
);
|
||||
|
||||
const response: ApiResponse<{ deletedCount: number }> = {
|
||||
success: true,
|
||||
message: "관계도가 성공적으로 삭제되었습니다.",
|
||||
data: { deletedCount },
|
||||
};
|
||||
|
||||
res.status(200).json(response);
|
||||
} catch (error) {
|
||||
logger.error("관계도 삭제 실패:", error);
|
||||
const response: ApiResponse<null> = {
|
||||
success: false,
|
||||
message: "관계도 삭제에 실패했습니다.",
|
||||
error: {
|
||||
code: "DIAGRAM_DELETE_FAILED",
|
||||
details:
|
||||
error instanceof Error
|
||||
? error.message
|
||||
: "알 수 없는 오류가 발생했습니다.",
|
||||
},
|
||||
};
|
||||
res.status(500).json(response);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user