diff options
Diffstat (limited to 'web/source/settings/lib/query/admin')
-rw-r--r-- | web/source/settings/lib/query/admin/index.js | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/web/source/settings/lib/query/admin/index.js b/web/source/settings/lib/query/admin/index.js index dd4a61b51..515d8edcf 100644 --- a/web/source/settings/lib/query/admin/index.js +++ b/web/source/settings/lib/query/admin/index.js @@ -22,7 +22,8 @@ const { replaceCacheOnMutation, removeFromCacheOnMutation, - domainListToObject + domainListToObject, + idListToObject } = require("../lib"); const base = require("../base"); @@ -104,6 +105,51 @@ const endpoints = (build) => ({ return res.accounts ?? []; } }), + instanceRules: build.query({ + query: () => ({ + url: `/api/v1/admin/instance/rules` + }), + transformResponse: idListToObject + }), + addInstanceRule: build.mutation({ + query: (formData) => ({ + method: "POST", + url: `/api/v1/admin/instance/rules`, + asForm: true, + body: formData, + discardEmpty: true + }), + transformResponse: (data) => { + return { + [data.id]: data + }; + }, + ...replaceCacheOnMutation("instanceRules") + }), + updateInstanceRule: build.mutation({ + query: ({ id, ...edit }) => ({ + method: "PATCH", + url: `/api/v1/admin/instance/rules/${id}`, + asForm: true, + body: edit, + discardEmpty: true + }), + transformResponse: (data) => { + return { + [data.id]: data + }; + }, + ...replaceCacheOnMutation("instanceRules") + }), + deleteInstanceRule: build.mutation({ + query: (id) => ({ + method: "DELETE", + url: `/api/v1/admin/instance/rules/${id}` + }), + ...removeFromCacheOnMutation("instanceRules", { + findKey: (_draft, rule) => rule.id + }) + }), ...require("./import-export")(build), ...require("./custom-emoji")(build), ...require("./reports")(build) |