react-query + enable/disable firewall

This commit is contained in:
Domingo Dirutigliano
2023-09-24 05:48:54 +02:00
parent 732680753c
commit 4247dc181d
36 changed files with 283 additions and 331 deletions

View File

@@ -1,10 +1,7 @@
import { RegexAddForm, RegexFilter, ServerResponse } from "../../js/models"
import { useQuery } from "@tanstack/react-query"
import { ServerResponse } from "../../js/models"
import { getapi, postapi } from "../../js/utils"
export type GeneralStats = {
rules:number,
}
export enum Protocol {
TCP = "tcp",
UDP = "udp",
@@ -37,6 +34,12 @@ export type Rule = {
}
export type RuleInfo = {
rules: Rule[]
policy: ActionType,
enabled: boolean
}
export type RuleAddForm = {
rules: Rule[]
policy: ActionType
}
@@ -46,14 +49,19 @@ export type ServerResponseListed = {
status:(ServerResponse & {rule_id:number})[]|string,
}
export const rulesQueryKey = ["firewall","rules"]
export const firewallRulesQuery = () => useQuery({queryKey:rulesQueryKey, queryFn:firewall.rules})
export const firewall = {
stats: async () => {
return await getapi("firewall/stats") as GeneralStats;
},
rules: async() => {
return await getapi("firewall/rules") as RuleInfo;
},
enable: async() => {
return await getapi("firewall/enable") as ServerResponse;
},
disable: async() => {
return await getapi("firewall/disable") as ServerResponse;
},
rulenable: async (rule_id:number) => {
return await getapi(`firewall/rule/${rule_id}/enable`) as ServerResponse;
},
@@ -64,7 +72,7 @@ export const firewall = {
const { status } = await postapi(`firewall/rule/${rule_id}/rename`,{ name }) as ServerResponse;
return status === "ok"?undefined:status
},
servicesadd: async (data:RuleInfo) => {
servicesadd: async (data:RuleAddForm) => {
return await postapi("firewall/rules/set", data) as ServerResponseListed;
}
}