From 65792dd070455c2993b23cb65f5ab35042bb45b5 Mon Sep 17 00:00:00 2001 From: Iain Billett Date: Sat, 31 Oct 2020 15:44:07 +0000 Subject: [PATCH] Use discovery api to build URLs in techdocs Use the discovery api to build catalog API URLs and URLs to locally published metadata. --- plugins/techdocs-backend/src/service/router.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index 2254e721bd..1d932a1fb9 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -62,7 +62,13 @@ export async function createRouter({ const router = Router(); router.get('/metadata/mkdocs/*', async (req, res) => { - const storageUrl = config.getString('techdocs.storageUrl'); + let storageUrl = config.getString('techdocs.storageUrl'); + if (publisher instanceof LocalPublish) { + storageUrl = new URL( + new URL(storageUrl).pathname, + await discovery.getBaseUrl('techdocs'), + ).toString(); + } const { '0': path } = req.params; const metadataURL = `${storageUrl}/${path}/techdocs_metadata.json`; @@ -77,13 +83,14 @@ export async function createRouter({ }); router.get('/metadata/entity/:namespace/:kind/:name', async (req, res) => { - const baseUrl = config.getString('backend.baseUrl'); + const catalogUrl = await discovery.getBaseUrl('catalog'); + const { kind, namespace, name } = req.params; try { const entity = (await ( await fetch( - `${baseUrl}/api/catalog/entities/by-name/${kind}/${namespace}/${name}`, + `${catalogUrl}/entities/by-name/${kind}/${namespace}/${name}`, ) ).json()) as Entity;