디벨롭

This commit is contained in:
leeheejin
2025-10-28 09:32:03 +09:00
parent 5b394473f4
commit c52e77f37d
11 changed files with 832 additions and 71 deletions

View File

@@ -65,28 +65,35 @@ export default function MultiDatabaseConfig({ dataSource, onChange }: MultiDatab
setTestResult(null);
try {
const response = await fetch("/api/dashboards/query", {
method: "POST",
headers: { "Content-Type": "application/json" },
credentials: "include",
body: JSON.stringify({
connectionType: dataSource.connectionType || "current",
externalConnectionId: dataSource.externalConnectionId,
query: dataSource.query,
}),
});
const result = await response.json();
if (result.success) {
const rowCount = Array.isArray(result.data) ? result.data.length : 0;
// dashboardApi 사용 (인증 토큰 자동 포함)
const { dashboardApi } = await import("@/lib/api/dashboard");
if (dataSource.connectionType === "external" && dataSource.externalConnectionId) {
// 외부 DB
const { ExternalDbConnectionAPI } = await import("@/lib/api/externalDbConnection");
const result = await ExternalDbConnectionAPI.executeQuery(
parseInt(dataSource.externalConnectionId),
dataSource.query
);
if (result.success && result.data) {
const rowCount = Array.isArray(result.data.rows) ? result.data.rows.length : 0;
setTestResult({
success: true,
message: "쿼리 실행 성공",
rowCount,
});
} else {
setTestResult({ success: false, message: result.message || "쿼리 실행 실패" });
}
} else {
// 현재 DB
const result = await dashboardApi.executeQuery(dataSource.query);
setTestResult({
success: true,
message: "쿼리 실행 성공",
rowCount,
rowCount: result.rowCount || 0,
});
} else {
setTestResult({ success: false, message: result.message || "쿼리 실행 실패" });
}
} catch (error: any) {
setTestResult({ success: false, message: error.message || "네트워크 오류" });