From dfb0dac46ef842e05426eaceec466484fbd988eb Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Sun, 20 Oct 2024 21:05:39 +0200 Subject: [PATCH] ENH: add handle system download proxy --- Dockerfile | 2 ++ pages/fdo/show/[prefix]/[suffix].tsx | 30 ++++++++++++++++++---------- src/constants.js | 1 + 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 84298d2..0d426df 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,9 @@ ENV PORT 3000 ARG NEXT_PUBLIC_API_URL ARG KEY_CLOAK_CLIENT_SECRET ARG NEXT_PUBLIC_HANDLE_SYSTEM_BASE_URI +ARG NEXT_PUBLIC_HANDLE_SYSTEM_DOWNLOAD_PROXY +ENV NEXT_PUBLIC_HANDLE_SYSTEM_DOWNLOAD_PROXY=${NEXT_PUBLIC_HANDLE_SYSTEM_DOWNLOAD_PROXY} ENV NEXT_PUBLIC_HANDLE_SYSTEM_BASE_URI=${NEXT_PUBLIC_HANDLE_SYSTEM_BASE_URI} ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-"https://manager.testbed.pid.gwdg.de/api/v1"} ENV KEY_CLOAK_CLIENT_SECRET=${KEY_CLOAK_CLIENT_SECRET} diff --git a/pages/fdo/show/[prefix]/[suffix].tsx b/pages/fdo/show/[prefix]/[suffix].tsx index 5bfc6be..3c3865c 100644 --- a/pages/fdo/show/[prefix]/[suffix].tsx +++ b/pages/fdo/show/[prefix]/[suffix].tsx @@ -29,16 +29,16 @@ import ReportIcon from '@mui/icons-material/Report' import { JsonView, darkStyles, defaultStyles } from 'react-json-view-lite'; import { styled, ThemeProvider } from '@mui/material/styles' import Details from '../../../../src/components/fdos/details' -import { FDO_COMMUNITY_TYPE_EVEBS as EVEBS, FDO_COMMUNITY_MD_PROFILE_EDC as EDC, FDO_COMMUNITY_MD_PROFILE_AAS as AAS, HANDLE_SYSTEM_BASE_URI as HS_BASE_URI } from '../../../../src/constants' +import { FDO_COMMUNITY_TYPE_EVEBS as EVEBS, FDO_COMMUNITY_MD_PROFILE_EDC as EDC, FDO_COMMUNITY_MD_PROFILE_AAS as AAS, HANDLE_SYSTEM_BASE_URI as HS_BASE_URI, HANDLE_SYSTEM_DOWNLOAD_PROXY as HS_PROXY } from '../../../../src/constants' import 'react-json-view-lite/dist/index.css'; const resolvePid = (pid: string) => `${HS_BASE_URI}/${pid}` const getFdoDetails = (data: object) => { - console.log(data) - if(!data) return undefined + if(!data) return {}; const fdoDetails = { + pid: data["pid"], isFdo: data["isFdo"], typePid: data["fdoType"], profilePid: data["fdoProfile"], @@ -83,11 +83,11 @@ const getEvebsDetails = (typePid, repository, metadataRecord) => { ] } -const EvebsDetails = ({typePid, repository, metadataPid}) => { +const EvebsDetails = ({pid, typePid, repository, metadataPid}) => { const apiUrl = useApiUrl() const t = useTranslate() const { data, isLoading, isError, error } = useCustom({ - url: `${HS_BASE_URI}/${metadataPid}?locatt=payloadIndex:0`, + url: `${HS_PROXY}/${metadataPid}?locatt=payloadIndex:0`, method: 'get', errorNotification: () => false, queryOptions: { @@ -104,10 +104,16 @@ const EvebsDetails = ({typePid, repository, metadataPid}) => { }); const metadata = data?.data; + var description = undefined var displayName = metadata?.displayName if(displayName) { displayName = displayName[0].text } + if(isError) { + displayName = pid + } else if(metadata?.description) { + description = metadata?.description[0].text + } console.log(isLoading, data, repository, typePid, metadata); return isLoading || metadataRecord.isLoading ? <Item>loading json</Item> : ( @@ -118,12 +124,14 @@ const EvebsDetails = ({typePid, repository, metadataPid}) => { <Details rows={getEvebsDetails(typePid, repository, metadataRecord.data.data)}></Details> </Box> </Item> - <Item> - <Box> - <Typography variant="h6" gutterBottom>Metadata (JSON)</Typography> - <JsonView data={metadata} shouldExpandNode={lvl => lvl<3} style={defaultStyles} /> - </Box> - </Item> + { metadata && + <Item> + <Box> + <Typography variant="h6" gutterBottom>Metadata (JSON)</Typography> + <JsonView data={metadata} shouldExpandNode={lvl => lvl<3} style={defaultStyles} /> + </Box> + </Item> + } </> ) } diff --git a/src/constants.js b/src/constants.js index cee9f3c..9e9c51f 100644 --- a/src/constants.js +++ b/src/constants.js @@ -5,3 +5,4 @@ export const FDO_COMMUNITY_TYPE_EVEBS = process.env.NEXT_PUBLIC_FDO_COMMUNITY_TY export const FDO_COMMUNITY_MD_PROFILE_AAS = process.env.NEXT_PUBLIC_FDO_COMMUNITY_MD_PROFILE_AAS || "21.T11966/49321f913c960ec3c943" export const FDO_COMMUNITY_MD_PROFILE_EDC = process.env.NEXT_PUBLIC_FDO_COMMUNITY_MD_PROFILE_EDC || "21.T11966/3f1cfd3bb60bee84c22b" export const HANDLE_SYSTEM_BASE_URI = process.env.NEXT_PUBLIC_HANDLE_SYSTEM_BASE_URI || "https://hdl.handle.net" +export const HANDLE_SYSTEM_DOWNLOAD_PROXY = process.env.NEXT_PUBLIC_HANDLE_SYSTEM_DOWNLOAD_PROXY || HANDLE_SYSTEM_BASE_URI -- GitLab