fix(api): align frontend with project-scoped backend
Use project-scoped endpoints and run IDs for current project, SCADA metadata, historical time series, migrated DMA results, and sensor placement runs. The regressions recurred because tests mocked pre-interceptor and new-only payload shapes, while history queries relied on implicit global scheme state and unbounded request fan-out. Cover post-interceptor pages, migrated result_rows, explicit run_id routing, multi-element requests, request limits, and cancellation.
This commit is contained in:
@@ -26,6 +26,13 @@ type SensorPlacementRunResponse = {
|
||||
can_edit: boolean;
|
||||
};
|
||||
|
||||
type SensorPlacementRunPage = {
|
||||
items: SensorPlacementRunResponse[];
|
||||
total: number;
|
||||
limit: number;
|
||||
offset: number;
|
||||
};
|
||||
|
||||
const toSensorPlacementScheme = (
|
||||
run: SensorPlacementRunResponse,
|
||||
): SensorPlacementScheme => ({
|
||||
@@ -53,12 +60,16 @@ export const optimizeSensorPlacement = async (
|
||||
export const listSensorPlacementSchemes = async (): Promise<
|
||||
SensorPlacementScheme[]
|
||||
> => {
|
||||
const response = await api.get<{
|
||||
items: SensorPlacementRunResponse[];
|
||||
}>(`${config.BACKEND_URL}/api/v1/sensor-placement-runs`, {
|
||||
params: { limit: 1000, offset: 0 },
|
||||
});
|
||||
return response.data.items.map(toSensorPlacementScheme);
|
||||
const response = await api.get<
|
||||
SensorPlacementRunPage | SensorPlacementRunResponse[]
|
||||
>(
|
||||
`${config.BACKEND_URL}/api/v1/sensor-placement-runs`,
|
||||
{ params: { limit: 1000, offset: 0 } },
|
||||
);
|
||||
const runs = Array.isArray(response.data)
|
||||
? response.data
|
||||
: response.data.items;
|
||||
return runs.map(toSensorPlacementScheme);
|
||||
};
|
||||
|
||||
export const getSensorPlacementScheme = async (
|
||||
|
||||
Reference in New Issue
Block a user