From 7a378c7aa2a15abd2378f45a4dd53a5ed0af80e2 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Tue, 13 Dec 2022 08:20:07 +0000 Subject: [PATCH] added api debugger --- .../app/src/debug/components/api/index.jsx | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 packages/app/src/debug/components/api/index.jsx diff --git a/packages/app/src/debug/components/api/index.jsx b/packages/app/src/debug/components/api/index.jsx new file mode 100644 index 00000000..2baa60d6 --- /dev/null +++ b/packages/app/src/debug/components/api/index.jsx @@ -0,0 +1,166 @@ +import React from "react" +import * as antd from "antd" + + +const EndpointRequester = (props) => { + const { endpoint, method, request } = props + + const [bodyParams, setBodyParams] = React.useState([]) + const [queryParams, setQueryParams] = React.useState([]) + + const [loading, setLoading] = React.useState(false) + const [response, setResponse] = React.useState(null) + + const [form] = antd.Form.useForm() + + const handleRequest = async () => { + setLoading(true) + + const values = form.getFieldsValue() + + console.log(values) + + return + const response = await request() + + setResponse(response) + setLoading(false) + } + + + return
+ + + {(fields, { add, remove }) => ( + <> + {fields.map(({ key, payloadKey: name, ...restField }) => ( + + + + + + + + remove(name)}> + Remove + + + ))} + + add()} block> + Add field + + + + )} + + + + + Request + + +
+ Response: +
+                {JSON.stringify(response, null, 2)}
+            
+
+
+ +} + +export default () => { + const [loading, setLoading] = React.useState(true) + const [activeKey, setActiveKey] = React.useState("0") + + const [apiNamespacesKeys, setApiNamespacesKeys] = React.useState([]) + + const loadData = () => { + const apiNamespaces = app.api.namespaces + + setApiNamespacesKeys(Object.keys(apiNamespaces)) + + setLoading(false) + } + + const generateEndpointsMapTabs = (apiNamespaceKey) => { + const endpoints = app.api.namespaces[apiNamespaceKey].endpoints + + return Object.keys(endpoints).map((method, index) => { + return + { + Object.keys(endpoints[method]).map((endpoint, index) => { + return + + + }) + } + + }) + } + + React.useEffect(() => { + loadData() + }, []) + + if (loading) { + return
+ loading api namespaces... +
+ } + + return
+ + { + apiNamespacesKeys.map((key, index) => { + return + { + generateEndpointsMapTabs(key) + } + + }) + } + +
+} \ No newline at end of file