Refactor cache reset functionality: replace old CacheSettingsContainer with TypeScript version, update SystemController to handle reset cache, and enhance SWR mutation fetcher.
parent
8af7b64a60
commit
ca388cb639
|
@ -44,8 +44,9 @@ namespace NetworkResurrector.Api.Controllers
|
|||
|
||||
[HttpPost("reset-cache")]
|
||||
[Authorize(Policy = Policies.SystemAdministration)]
|
||||
public async Task<IActionResult> WakeMachine([FromBody] ResetCache resetCache)
|
||||
public async Task<IActionResult> ResetCache()
|
||||
{
|
||||
var resetCache = new ResetCache();
|
||||
var result = await _mediator.Send(resetCache);
|
||||
return Ok(result);
|
||||
}
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
import React, { useCallback } from "react";
|
||||
import CacheSettingsComponent from "./CacheSettingsComponent";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { routes, post } from "utils/api";
|
||||
import { blip } from "utils";
|
||||
|
||||
const CacheSettingsContainer = () => {
|
||||
const { t } = useTranslation();
|
||||
const handleResetCache = useCallback(async () => {
|
||||
await post(
|
||||
routes.resetCache,
|
||||
{},
|
||||
{
|
||||
onCompleted: () => blip.info(t("Settings.Cache.ResetInfo"))
|
||||
}
|
||||
);
|
||||
}, [t]);
|
||||
|
||||
return <CacheSettingsComponent onResetCache={handleResetCache} />;
|
||||
};
|
||||
|
||||
export default CacheSettingsContainer;
|
|
@ -0,0 +1,25 @@
|
|||
import React, { useCallback } from "react";
|
||||
import CacheSettingsComponent from "./CacheSettingsComponent";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { endpoints } from "utils/api";
|
||||
import { blip } from "utils";
|
||||
import useSWRMutation from "swr/mutation";
|
||||
import { Key } from "swr";
|
||||
import { mutationFetcher } from "utils/swr";
|
||||
|
||||
const CacheSettingsContainer: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { trigger } = useSWRMutation<void, Error, Key, void>(endpoints.system.resetCache, mutationFetcher<void>, {
|
||||
onError: err => {
|
||||
blip.error(err.message);
|
||||
},
|
||||
onSuccess: () => blip.info(t("Settings.Cache.ResetInfo"))
|
||||
});
|
||||
|
||||
const handleResetCache = useCallback(() => trigger(), [t]);
|
||||
|
||||
return <CacheSettingsComponent onResetCache={handleResetCache} />;
|
||||
};
|
||||
|
||||
export default CacheSettingsContainer;
|
|
@ -23,10 +23,14 @@ const getHeaders = (): HeadersInit => {
|
|||
const fetcher = (url: string) => fetch(url, { method: "GET", headers: getHeaders() }).then(res => res.json());
|
||||
|
||||
async function mutationFetcher<Command>(url: string, { arg }: { arg: Command }) {
|
||||
const hasBody = arg !== undefined && arg !== null;
|
||||
const headers = getHeaders();
|
||||
const body = hasBody ? JSON.stringify(arg) : undefined;
|
||||
|
||||
return fetch(url, {
|
||||
method: "POST",
|
||||
headers: getHeaders(),
|
||||
body: JSON.stringify(arg)
|
||||
headers,
|
||||
body
|
||||
}).then(res => res.json());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue