diff options
Diffstat (limited to 'web/source/settings/lib')
| -rw-r--r-- | web/source/settings/lib/navigation/util.ts | 7 | ||||
| -rw-r--r-- | web/source/settings/lib/query/admin/debug/index.ts | 59 | ||||
| -rw-r--r-- | web/source/settings/lib/types/debug.ts | 26 | ||||
| -rw-r--r-- | web/source/settings/lib/types/instance.ts | 1 | 
4 files changed, 93 insertions, 0 deletions
diff --git a/web/source/settings/lib/navigation/util.ts b/web/source/settings/lib/navigation/util.ts index 2c5885c4d..b1ef7834d 100644 --- a/web/source/settings/lib/navigation/util.ts +++ b/web/source/settings/lib/navigation/util.ts @@ -21,6 +21,7 @@ import { createContext, useContext } from "react";  const RoleContext = createContext<string[]>([]);  const BaseUrlContext = createContext<string>("");  const MenuLevelContext = createContext<number>(0); +const InstanceDebugContext = createContext<boolean>(false);  function urlSafe(str: string) {  	return str.toLowerCase().replace(/[\s/]+/g, "-"); @@ -67,6 +68,10 @@ function useMenuLevel() {  	return useContext(MenuLevelContext);  } +function useInstanceDebug() { +	return useContext(InstanceDebugContext); +} +  export {  	urlSafe,  	RoleContext, @@ -76,4 +81,6 @@ export {  	useBaseUrl,  	MenuLevelContext,  	useMenuLevel, +	InstanceDebugContext, +	useInstanceDebug,  }; diff --git a/web/source/settings/lib/query/admin/debug/index.ts b/web/source/settings/lib/query/admin/debug/index.ts new file mode 100644 index 000000000..5dabd4666 --- /dev/null +++ b/web/source/settings/lib/query/admin/debug/index.ts @@ -0,0 +1,59 @@ +/* +	GoToSocial +	Copyright (C) GoToSocial Authors admin@gotosocial.org +	SPDX-License-Identifier: AGPL-3.0-or-later + +	This program is free software: you can redistribute it and/or modify +	it under the terms of the GNU Affero General Public License as published by +	the Free Software Foundation, either version 3 of the License, or +	(at your option) any later version. + +	This program is distributed in the hope that it will be useful, +	but WITHOUT ANY WARRANTY; without even the implied warranty of +	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +	GNU Affero General Public License for more details. + +	You should have received a copy of the GNU Affero General Public License +	along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +import { ApURLResponse } from "../../../types/debug"; +import { gtsApi } from "../../gts-api"; + +const extended = gtsApi.injectEndpoints({ +	endpoints: (build) => ({ +		ApURL: build.query<ApURLResponse, string>({ +			query: (url) => { +				// Get the url in a SearchParam +				// so we can escape it. +				const urlParam = new URLSearchParams(); +				urlParam.set("url", url); + +				return { +					url: `/api/v1/admin/debug/apurl?${urlParam.toString()}`, +				}; +			} +		}), +		ClearCaches: build.mutation<{}, void>({ +			query: () => ({ +				method: "POST", +				url: `/api/v1/admin/debug/caches/clear` +			}) +		}), +	}), +}); + +/** + * Lazy GET to /api/v1/admin/debug/apurl. + */ +const useLazyApURLQuery = extended.useLazyApURLQuery; + +/** + * POST to /api/v1/admin/debug/caches/clear to empty in-memory caches. + */ +const useClearCachesMutation = extended.useClearCachesMutation; + +export { +	useLazyApURLQuery, +	useClearCachesMutation, +}; diff --git a/web/source/settings/lib/types/debug.ts b/web/source/settings/lib/types/debug.ts new file mode 100644 index 000000000..dab2c485d --- /dev/null +++ b/web/source/settings/lib/types/debug.ts @@ -0,0 +1,26 @@ +/* +	GoToSocial +	Copyright (C) GoToSocial Authors admin@gotosocial.org +	SPDX-License-Identifier: AGPL-3.0-or-later + +	This program is free software: you can redistribute it and/or modify +	it under the terms of the GNU Affero General Public License as published by +	the Free Software Foundation, either version 3 of the License, or +	(at your option) any later version. + +	This program is distributed in the hope that it will be useful, +	but WITHOUT ANY WARRANTY; without even the implied warranty of +	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +	GNU Affero General Public License for more details. + +	You should have received a copy of the GNU Affero General Public License +	along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +export interface ApURLResponse { +	request_url: string; +	request_headers: string; +	response_headers: string; +	response_code: number; +	response_body: string; +} diff --git a/web/source/settings/lib/types/instance.ts b/web/source/settings/lib/types/instance.ts index adc55687c..4c6f5061b 100644 --- a/web/source/settings/lib/types/instance.ts +++ b/web/source/settings/lib/types/instance.ts @@ -27,6 +27,7 @@ export interface InstanceV1 {      short_description_text?: string;      email:                  string;      version:                string; +    debug?:                 boolean;      languages:              any[]; // TODO: define this      registrations:          boolean;      approval_required:      boolean;  | 
