Skip to content

Commit 2f023eb

Browse files
committed
Fix API return type
1 parent 78f9888 commit 2f023eb

File tree

2 files changed

+14
-30
lines changed

2 files changed

+14
-30
lines changed

src/common/atlas/performanceAdvisorUtils.ts

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { LogId } from "../logger.js";
2-
import { ApiClient } from "./apiClient.js";
2+
import type { ApiClient } from "./apiClient.js";
33
import { getProcessIdFromCluster } from "./cluster.js";
44

55
export enum PerformanceAdvisorOperation {
@@ -105,17 +105,14 @@ export async function getSuggestedIndexes(
105105
},
106106
},
107107
});
108-
if (!response?.suggestedIndexes?.length) {
109-
throw new Error("No suggested indexes found.");
110-
}
111-
return { suggestedIndexes: response.suggestedIndexes };
108+
return { suggestedIndexes: response?.content?.suggestedIndexes ?? [] };
112109
} catch (err) {
113110
apiClient.logger.debug({
114111
id: LogId.atlasPaSuggestedIndexesFailure,
115112
context: "performanceAdvisorUtils",
116113
message: `Failed to list suggested indexes: ${err instanceof Error ? err.message : String(err)}`,
117114
});
118-
throw new Error(`Failed to list suggested indexes.`);
115+
throw new Error(`Failed to list suggested indexes: ${err instanceof Error ? err.message : String(err)}`);
119116
}
120117
}
121118

@@ -137,25 +134,18 @@ export async function getDropIndexSuggestions(
137134
},
138135
},
139136
});
140-
if (
141-
!response?.hiddenIndexes?.length &&
142-
!response?.redundantIndexes?.length &&
143-
!response?.unusedIndexes?.length
144-
) {
145-
throw new Error("No drop index suggestions found.");
146-
}
147137
return {
148-
hiddenIndexes: response?.hiddenIndexes ?? [],
149-
redundantIndexes: response?.redundantIndexes ?? [],
150-
unusedIndexes: response?.unusedIndexes ?? [],
138+
hiddenIndexes: response?.content?.hiddenIndexes ?? [],
139+
redundantIndexes: response?.content?.redundantIndexes ?? [],
140+
unusedIndexes: response?.content?.unusedIndexes ?? [],
151141
};
152142
} catch (err) {
153143
apiClient.logger.debug({
154144
id: LogId.atlasPaDropIndexSuggestionsFailure,
155145
context: "performanceAdvisorUtils",
156146
message: `Failed to list drop index suggestions: ${err instanceof Error ? err.message : String(err)}`,
157147
});
158-
throw new Error(`Failed to list drop index suggestions.`);
148+
throw new Error(`Failed to list drop index suggestions: ${err instanceof Error ? err.message : String(err)}`);
159149
}
160150
}
161151

@@ -173,17 +163,14 @@ export async function getSchemaAdvice(
173163
},
174164
},
175165
});
176-
if (!response?.recommendations?.length) {
177-
throw new Error("No schema advice found.");
178-
}
179-
return { recommendations: response.recommendations };
166+
return { recommendations: response?.content?.recommendations ?? [] };
180167
} catch (err) {
181168
apiClient.logger.debug({
182169
id: LogId.atlasPaSchemaAdviceFailure,
183170
context: "performanceAdvisorUtils",
184171
message: `Failed to list schema advice: ${err instanceof Error ? err.message : String(err)}`,
185172
});
186-
throw new Error(`Failed to list schema advice.`);
173+
throw new Error(`Failed to list schema advice: ${err instanceof Error ? err.message : String(err)}`);
187174
}
188175
}
189176

@@ -213,16 +200,13 @@ export async function getSlowQueries(
213200
},
214201
});
215202

216-
if (!response?.slowQueries?.length) {
217-
throw new Error("No slow query logs found.");
218-
}
219-
return { slowQueryLogs: response.slowQueries };
203+
return { slowQueryLogs: response?.content?.slowQueries ?? [] };
220204
} catch (err) {
221205
apiClient.logger.debug({
222206
id: LogId.atlasPaSlowQueryLogsFailure,
223207
context: "performanceAdvisorUtils",
224208
message: `Failed to list slow query logs: ${err instanceof Error ? err.message : String(err)}`,
225209
});
226-
throw new Error(`Failed to list slow query logs.`);
210+
throw new Error(`Failed to list slow query logs: ${err instanceof Error ? err.message : String(err)}`);
227211
}
228212
}

src/tools/atlas/read/listPerformanceAdvisor.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { z } from "zod";
22
import { AtlasToolBase } from "../atlasTool.js";
3-
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
4-
import { OperationType, ToolArgs } from "../../tool.js";
3+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
4+
import type { OperationType, ToolArgs } from "../../tool.js";
55
import {
66
getSuggestedIndexes,
77
getDropIndexSuggestions,
88
getSchemaAdvice,
99
getSlowQueries,
1010
PerformanceAdvisorOperation,
11-
PerformanceAdvisorData,
11+
type PerformanceAdvisorData,
1212
} from "../../../common/atlas/performanceAdvisorUtils.js";
1313

1414
export class ListPerformanceAdvisorTool extends AtlasToolBase {

0 commit comments

Comments
 (0)