diff --git a/src/qqq/pages/records/developer/TableDeveloperView.tsx b/src/qqq/pages/records/developer/TableDeveloperView.tsx index e283f63..decbf23 100644 --- a/src/qqq/pages/records/developer/TableDeveloperView.tsx +++ b/src/qqq/pages/records/developer/TableDeveloperView.tsx @@ -54,10 +54,12 @@ function TableDeveloperView({table}: Props): JSX.Element const tableName = table.name; const [asyncLoadInited, setAsyncLoadInited] = useState(false); + const [noApis, setNoApis] = useState(null as boolean); const [tableMetaData, setTableMetaData] = useState(null); const [metaData, setMetaData] = useState(null as QInstance); + const [supportedApis, setSupportedApis] = useState([] as any) const [supportedVersions, setSupportedVersions] = useState([] as string[]); - const [currentVersion, setCurrentVersion] = useState(null as string); + const [selectedApi, setSelectedApi] = useState(null as any); const [selectedVersion, setSelectedVersion] = useState(null as string); const {setPageHeader} = useContext(QContext); @@ -74,17 +76,6 @@ function TableDeveloperView({table}: Props): JSX.Element (async () => { - const versionsResponse = await fetch("/api/versions.json"); - const versionsJson = await versionsResponse.json(); - console.log(versionsJson); - - setSupportedVersions(versionsJson.supportedVersions); - if (versionsJson.currentVersion) - { - setCurrentVersion(versionsJson.currentVersion); - setSelectedVersion(versionsJson.currentVersion); - } - ///////////////////////////////////////////////////////////////////// // load the full table meta-data (the one we took in is a partial) // ///////////////////////////////////////////////////////////////////// @@ -99,7 +90,30 @@ function TableDeveloperView({table}: Props): JSX.Element setPageHeader(tableMetaData.label + " Developer Mode"); - // forceUpdate(); + const apisResponse = await fetch("/apis.json?tableName=" + tableName); + const apisJson = await apisResponse.json(); + console.log(apisJson); + + if(!apisJson["apis"] || apisJson["apis"].length == 0) + { + setNoApis(true); + return; + } + + setSupportedApis(apisJson["apis"]); + + const selectedApi = apisJson["apis"][0]; + setSelectedApi(selectedApi); + + const versionsResponse = await fetch(selectedApi["path"] + "versions.json"); + const versionsJson = await versionsResponse.json(); + console.log(versionsJson); + + setSupportedVersions(versionsJson.supportedVersions); + if (versionsJson.currentVersion) + { + setSelectedVersion(versionsJson.currentVersion); + } })(); } @@ -108,6 +122,33 @@ function TableDeveloperView({table}: Props): JSX.Element e.detail.request.headers.append("Authorization", "Bearer " + accessToken); }; + const selectApi = async (event: SelectChangeEvent) => + { + setSelectedApi(null); + setSelectedVersion(null); + + const name = event.target.value; + for(let i = 0; i < supportedApis.length; i++) + { + if(name == supportedApis[i].name) + { + const selectedApi = supportedApis[i]; + setSelectedApi(selectedApi); + + const versionsResponse = await fetch(selectedApi["path"] + "versions.json"); + const versionsJson = await versionsResponse.json(); + console.log(versionsJson); + + setSupportedVersions(versionsJson.supportedVersions); + if (versionsJson.currentVersion) + { + setSelectedVersion(versionsJson.currentVersion); + } + break; + } + } + }; + const selectVersion = (event: SelectChangeEvent) => { setSelectedVersion(event.target.value); @@ -120,41 +161,62 @@ function TableDeveloperView({table}: Props): JSX.Element { - accessToken && metaData && selectedVersion && API Docs & Playground - - Version: - - + + { + supportedApis?.length > 0 && + + API: + + + } + + { + supportedVersions?.length > 0 && + + Version: + + + } - + + {noApis == true && This table is not available in any APIs.} + + { + accessToken && metaData && selectedApi && selectedVersion && + + } } diff --git a/src/setupProxy.js b/src/setupProxy.js index f53888f..d693159 100644 --- a/src/setupProxy.js +++ b/src/setupProxy.js @@ -52,5 +52,6 @@ module.exports = function (app) app.use("/processes", getRequestHandler()); app.use("/reports", getRequestHandler()); app.use("/images", getRequestHandler()); - app.use("/api", getRequestHandler()); + app.use("/api*", getRequestHandler()); + app.use("/*api", getRequestHandler()); };