diff options
| author | 2023-08-19 14:33:15 +0200 | |
|---|---|---|
| committer | 2023-08-19 14:33:15 +0200 | |
| commit | 92de8fb396265d057f18aab4de0bc8aff4b90188 (patch) | |
| tree | 46438b9ff550261f56aa58d038cdf2f1e15493e3 /web/source/settings/lib/query/admin | |
| parent | [bugfix] fix double firing bun.DB query hooks (#2124) (diff) | |
| download | gotosocial-92de8fb396265d057f18aab4de0bc8aff4b90188.tar.xz | |
[feature] Instance rules (#2125)
* init instance rules database model, admin api
* expose instance rules in public instance api
* public /api/v1/instance/rules route
* GET ruleById
* createRule route
* createRule auth check
* updateRule
* deleteRule
* list rules on about page
* ruleGet auth
* add about page ids for anchors
* process and store adding violated rules to reports
* admin api models for instance rules
* instance rule edit frontend
* change rule inputs to textareas
* database fixes after rebase (#2124)
* remove unused imports
* fix db migration column name
* fix tests
* fix more tests
* fix postgres error with wrongly used Ident
* add some tests, fiddle with rule model a bit, fix postgres migration
* swagger docs
---------
Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
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) | 
