mirror of
https://github.com/optim-enterprises-bv/OptimCloud-gw-ui.git
synced 2025-10-29 17:32:20 +00:00
[WIFI-11875] Custom timeframes for commands/deviceslogs/commands now work for large datasets
Signed-off-by: Charles <charles.bourque96@gmail.com>
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "ucentral-client",
|
||||
"version": "2.8.0(39)",
|
||||
"version": "2.8.0(40)",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "ucentral-client",
|
||||
"version": "2.8.0(39)",
|
||||
"version": "2.8.0(40)",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@chakra-ui/icons": "^2.0.11",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ucentral-client",
|
||||
"version": "2.8.0(39)",
|
||||
"version": "2.8.0(40)",
|
||||
"description": "",
|
||||
"private": true,
|
||||
"main": "index.tsx",
|
||||
|
||||
@@ -57,12 +57,31 @@ export const useGetCommandHistory = ({
|
||||
onError,
|
||||
});
|
||||
|
||||
const getCommandsWithTimestamps = (serialNumber?: string, start?: number, end?: number) => async () =>
|
||||
const getCommandsBatch = (serialNumber?: string, start?: number, end?: number, limit?: number, offset?: number) =>
|
||||
axiosGw
|
||||
.get(`commands?serialNumber=${serialNumber}&startDate=${start}&endDate=${end}`)
|
||||
.get(`commands?serialNumber=${serialNumber}&startDate=${start}&endDate=${end}&limit=${limit}&offset=${offset}`)
|
||||
.then((response) => response.data) as Promise<{
|
||||
commands: DeviceCommandHistory[];
|
||||
}>;
|
||||
|
||||
const getCommandsByBatches = (serialNumber?: string, start?: number, end?: number) => async () => {
|
||||
let offset = 0;
|
||||
const limit = 100;
|
||||
let commands: DeviceCommandHistory[] = [];
|
||||
let latestResponse: {
|
||||
commands: DeviceCommandHistory[];
|
||||
};
|
||||
do {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
latestResponse = await getCommandsBatch(serialNumber, start, end, limit, offset);
|
||||
commands = commands.concat(latestResponse.commands);
|
||||
offset += limit;
|
||||
} while (latestResponse.commands.length === limit);
|
||||
return {
|
||||
commands,
|
||||
};
|
||||
};
|
||||
|
||||
export const useGetCommandHistoryWithTimestamps = ({
|
||||
serialNumber,
|
||||
start,
|
||||
@@ -74,7 +93,7 @@ export const useGetCommandHistoryWithTimestamps = ({
|
||||
end?: number;
|
||||
onError?: (e: AxiosError) => void;
|
||||
}) =>
|
||||
useQuery(['commands', serialNumber, { start, end }], getCommandsWithTimestamps(serialNumber, start, end), {
|
||||
useQuery(['commands', serialNumber, { start, end }], getCommandsByBatches(serialNumber, start, end), {
|
||||
enabled: serialNumber !== undefined && serialNumber !== '' && start !== undefined && end !== undefined,
|
||||
staleTime: 1000 * 60,
|
||||
onError,
|
||||
|
||||
@@ -45,13 +45,33 @@ export const useDeleteLogs = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const getDeviceLogsWithTimestamps = (serialNumber?: string, start?: number, end?: number) => async () =>
|
||||
const getLogsBatch = (serialNumber?: string, start?: number, end?: number, limit?: number, offset?: number) =>
|
||||
axiosGw
|
||||
.get(`device/${serialNumber}/logs?startDate=${start}&endDate=${end}`)
|
||||
.get(`device/${serialNumber}/logs?startDate=${start}&endDate=${end}&limit=${limit}&offset=${offset}`)
|
||||
.then((response) => response.data) as Promise<{
|
||||
values: DeviceLog[];
|
||||
serialNumber: string;
|
||||
}>;
|
||||
|
||||
const getDeviceLogsWithTimestamps = (serialNumber?: string, start?: number, end?: number) => async () => {
|
||||
let offset = 0;
|
||||
const limit = 100;
|
||||
let logs: DeviceLog[] = [];
|
||||
let latestResponse: {
|
||||
values: DeviceLog[];
|
||||
serialNumber: string;
|
||||
};
|
||||
do {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
latestResponse = await getLogsBatch(serialNumber, start, end, limit, offset);
|
||||
logs = logs.concat(latestResponse.values);
|
||||
offset += limit;
|
||||
} while (latestResponse.values.length === limit);
|
||||
return {
|
||||
values: logs,
|
||||
};
|
||||
};
|
||||
|
||||
export const useGetDeviceLogsWithTimestamps = ({
|
||||
serialNumber,
|
||||
start,
|
||||
|
||||
@@ -33,13 +33,34 @@ export const useGetHealthChecks = ({
|
||||
onError,
|
||||
});
|
||||
|
||||
const getHealthChecksWithTimestamps = (serialNumber?: string, start?: number, end?: number) => async () =>
|
||||
const getHealthChecksBatch = (serialNumber?: string, start?: number, end?: number, limit?: number, offset?: number) =>
|
||||
axiosGw
|
||||
.get(`device/${serialNumber}/healthchecks?startDate=${start}&endDate=${end}`)
|
||||
.get(`device/${serialNumber}/healthchecks?startDate=${start}&endDate=${end}&limit=${limit}&offset=${offset}`)
|
||||
.then((response) => response.data) as Promise<{
|
||||
values: HealthCheck[];
|
||||
serialNumber: string;
|
||||
}>;
|
||||
|
||||
const getHealthChecksByBatches = (serialNumber?: string, start?: number, end?: number) => async () => {
|
||||
let offset = 0;
|
||||
const limit = 100;
|
||||
let checks: HealthCheck[] = [];
|
||||
let latestResponse: {
|
||||
values: HealthCheck[];
|
||||
serialNumber: string;
|
||||
};
|
||||
do {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
latestResponse = await getHealthChecksBatch(serialNumber, start, end, limit, offset);
|
||||
checks = checks.concat(latestResponse.values);
|
||||
offset += limit;
|
||||
} while (latestResponse.values.length === limit);
|
||||
return {
|
||||
values: checks,
|
||||
serialNumber: latestResponse.serialNumber,
|
||||
};
|
||||
};
|
||||
|
||||
export const useGetHealthChecksWithTimestamps = ({
|
||||
serialNumber,
|
||||
start,
|
||||
@@ -51,7 +72,7 @@ export const useGetHealthChecksWithTimestamps = ({
|
||||
end?: number;
|
||||
onError?: (e: AxiosError) => void;
|
||||
}) =>
|
||||
useQuery(['healthchecks', serialNumber, { start, end }], getHealthChecksWithTimestamps(serialNumber, start, end), {
|
||||
useQuery(['healthchecks', serialNumber, { start, end }], getHealthChecksByBatches(serialNumber, start, end), {
|
||||
enabled: serialNumber !== undefined && serialNumber !== '' && start !== undefined && end !== undefined,
|
||||
staleTime: 1000 * 60,
|
||||
onError,
|
||||
|
||||
Reference in New Issue
Block a user