add: markdown permission setting
improve: template
This commit is contained in:
75
src/utils/queries/markdown-permission-setting-queries.js
Normal file
75
src/utils/queries/markdown-permission-setting-queries.js
Normal file
@@ -0,0 +1,75 @@
|
||||
import {useConfig} from "../../ConfigProvider";
|
||||
import {useMutation, useQuery, useQueryClient} from "react-query";
|
||||
import {fetch_} from "../request-utils";
|
||||
|
||||
export const useMarkdownPermissionSettings = () => {
|
||||
const config = useConfig();
|
||||
const queryClient = useQueryClient();
|
||||
return useQuery(
|
||||
"markdown_permission_settings",
|
||||
() => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/permission/`), {
|
||||
onSuccess: (data) => {
|
||||
if(data){
|
||||
for(const setting of data){
|
||||
queryClient.invalidateQueries(["markdown_permission_setting", setting.id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export const useMarkdownPermissionSetting = (setting_id) => {
|
||||
const config = useConfig();
|
||||
return useQuery(
|
||||
["markdown_permission_setting", setting_id],
|
||||
() => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/permission/${setting_id}/`), {
|
||||
enabled: !!setting_id,
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export const useCreateMarkdownPermissionSetting = () => {
|
||||
const config = useConfig();
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation((data) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/permission/`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(data),
|
||||
}), {
|
||||
onSuccess: (data) => {
|
||||
queryClient.invalidateQueries(["markdown_permission_setting", data.id]);
|
||||
queryClient.invalidateQueries("markdown_permission_settings");
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const useUpdateMarkdownPermissionSetting = () => {
|
||||
const config = useConfig();
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(
|
||||
({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/permission/${id}`, {
|
||||
method: "PATCH",
|
||||
body: JSON.stringify(data),
|
||||
}),{
|
||||
onSuccess: (res) => {
|
||||
queryClient.invalidateQueries(["markdown_permission_setting", res.id]);
|
||||
queryClient.invalidateQueries("markdown_permission_settings");
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export const useDeleteMarkdownPermissionSetting = () => {
|
||||
const config = useConfig();
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(
|
||||
({id}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/permission/${id}`, {
|
||||
method: "DELETE",
|
||||
}), {
|
||||
onSuccess: (res, variables) => {
|
||||
queryClient.invalidateQueries(["markdown_permission_setting", variables.id]);
|
||||
queryClient.invalidateQueries("markdown_permission_settings");
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
@@ -24,5 +24,16 @@ export async function fetch_(url, init = {}) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (response.status === 203) {
|
||||
const data = await response.json();
|
||||
return {
|
||||
id: null,
|
||||
content: data.msg || "Non-authoritative information received",
|
||||
title: "Message",
|
||||
isMessage: true,
|
||||
...data
|
||||
};
|
||||
}
|
||||
|
||||
return response.json();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user