194 lines
3.7 KiB
JavaScript
194 lines
3.7 KiB
JavaScript
import { useState, useEffect } from "react";
|
|
import { networkService } from "../main.jsx";
|
|
import { createToast } from "../Utils/toastUtils.jsx";
|
|
import { useTranslation } from "react-i18next";
|
|
|
|
const useFetchChecksTeam = ({
|
|
status,
|
|
sortOrder,
|
|
limit,
|
|
dateRange,
|
|
filter,
|
|
ack,
|
|
page,
|
|
rowsPerPage,
|
|
enabled = true,
|
|
updateTrigger,
|
|
}) => {
|
|
const [checks, setChecks] = useState(undefined);
|
|
const [checksCount, setChecksCount] = useState(undefined);
|
|
const [isLoading, setIsLoading] = useState(false);
|
|
const [networkError, setNetworkError] = useState(false);
|
|
|
|
useEffect(() => {
|
|
const fetchChecks = async () => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
|
|
const config = {
|
|
status,
|
|
sortOrder,
|
|
limit,
|
|
dateRange,
|
|
filter,
|
|
ack,
|
|
page,
|
|
rowsPerPage,
|
|
};
|
|
|
|
try {
|
|
setIsLoading(true);
|
|
const res = await networkService.getChecksByTeam(config);
|
|
setChecks(res.data.data.checks);
|
|
setChecksCount(res.data.data.checksCount);
|
|
} catch (error) {
|
|
setNetworkError(true);
|
|
createToast({ body: error.message });
|
|
} finally {
|
|
setIsLoading(false);
|
|
}
|
|
};
|
|
|
|
fetchChecks();
|
|
}, [
|
|
status,
|
|
sortOrder,
|
|
limit,
|
|
dateRange,
|
|
filter,
|
|
ack,
|
|
page,
|
|
rowsPerPage,
|
|
enabled,
|
|
updateTrigger,
|
|
]);
|
|
|
|
return [checks, checksCount, isLoading, networkError];
|
|
};
|
|
|
|
const useFetchChecksByMonitor = ({
|
|
monitorId,
|
|
type,
|
|
status,
|
|
sortOrder,
|
|
limit,
|
|
dateRange,
|
|
filter,
|
|
ack,
|
|
page,
|
|
rowsPerPage,
|
|
enabled = true,
|
|
updateTrigger,
|
|
}) => {
|
|
const [checks, setChecks] = useState(undefined);
|
|
const [checksCount, setChecksCount] = useState(undefined);
|
|
const [isLoading, setIsLoading] = useState(false);
|
|
const [networkError, setNetworkError] = useState(false);
|
|
|
|
useEffect(() => {
|
|
const fetchChecks = async () => {
|
|
if (!enabled || !type) {
|
|
return;
|
|
}
|
|
|
|
const config = {
|
|
monitorId,
|
|
type,
|
|
status,
|
|
sortOrder,
|
|
limit,
|
|
dateRange,
|
|
filter,
|
|
ack,
|
|
page,
|
|
rowsPerPage,
|
|
};
|
|
|
|
try {
|
|
setIsLoading(true);
|
|
const res = await networkService.getChecksByMonitor(config);
|
|
setChecks(res.data.data.checks);
|
|
setChecksCount(res.data.data.checksCount);
|
|
} catch (error) {
|
|
setNetworkError(true);
|
|
createToast({ body: error.message });
|
|
} finally {
|
|
setIsLoading(false);
|
|
}
|
|
};
|
|
|
|
fetchChecks();
|
|
}, [
|
|
monitorId,
|
|
type,
|
|
status,
|
|
sortOrder,
|
|
limit,
|
|
dateRange,
|
|
filter,
|
|
ack,
|
|
page,
|
|
rowsPerPage,
|
|
enabled,
|
|
updateTrigger,
|
|
]);
|
|
|
|
return [checks, checksCount, isLoading, networkError];
|
|
};
|
|
|
|
const useFetchChecksSummaryByTeamId = ({ dateRange, updateTrigger } = {}) => {
|
|
const [summary, setSummary] = useState(undefined);
|
|
const [isLoading, setIsLoading] = useState(false);
|
|
const [networkError, setNetworkError] = useState(false);
|
|
|
|
useEffect(() => {
|
|
const fetchSummary = async () => {
|
|
try {
|
|
setIsLoading(true);
|
|
|
|
const res = await networkService.getChecksAndSummaryByTeamId({ dateRange });
|
|
setSummary(res.data.data);
|
|
} catch (error) {
|
|
setNetworkError(true);
|
|
createToast({ body: error.message });
|
|
} finally {
|
|
setIsLoading(false);
|
|
}
|
|
};
|
|
|
|
fetchSummary();
|
|
}, [dateRange, updateTrigger]);
|
|
|
|
return [summary, isLoading, networkError];
|
|
};
|
|
|
|
const useResolveIncident = () => {
|
|
const [isLoading, setIsLoading] = useState(false);
|
|
const { t } = useTranslation();
|
|
|
|
const resolveIncident = async (checkId, setUpdateTrigger) => {
|
|
try {
|
|
setIsLoading(true);
|
|
await networkService.updateCheckStatus({
|
|
checkId,
|
|
ack: true,
|
|
});
|
|
setUpdateTrigger((prev) => !prev);
|
|
} catch (error) {
|
|
createToast({ body: t("checkHooks.failureResolveOne") });
|
|
} finally {
|
|
setIsLoading(false);
|
|
}
|
|
};
|
|
|
|
return [resolveIncident, isLoading];
|
|
};
|
|
|
|
export {
|
|
useFetchChecksByMonitor,
|
|
useFetchChecksTeam,
|
|
useFetchChecksSummaryByTeamId,
|
|
useResolveIncident,
|
|
};
|