From b4507515fde6880ed8f22fc34f983ef08df080a2 Mon Sep 17 00:00:00 2001 From: Dominik Henneke Date: Thu, 17 Dec 2020 12:21:47 +0100 Subject: [PATCH] Improve useProjectName semantics --- plugins/fossa/src/api/FossaApi.ts | 2 +- plugins/fossa/src/api/FossaClient.test.ts | 2 +- plugins/fossa/src/api/FossaClient.ts | 6 +----- plugins/fossa/src/components/FossaCard/FossaCard.tsx | 3 ++- plugins/fossa/src/components/useProjectName.ts | 6 ++++-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/plugins/fossa/src/api/FossaApi.ts b/plugins/fossa/src/api/FossaApi.ts index c44d66661c..84406e1b1a 100644 --- a/plugins/fossa/src/api/FossaApi.ts +++ b/plugins/fossa/src/api/FossaApi.ts @@ -30,5 +30,5 @@ export const fossaApiRef = createApiRef({ }); export type FossaApi = { - getFindingSummary(projectTitle?: string): Promise; + getFindingSummary(projectTitle: string): Promise; }; diff --git a/plugins/fossa/src/api/FossaClient.test.ts b/plugins/fossa/src/api/FossaClient.test.ts index 8028ade57a..c01dd09327 100644 --- a/plugins/fossa/src/api/FossaClient.test.ts +++ b/plugins/fossa/src/api/FossaClient.test.ts @@ -69,7 +69,7 @@ describe('FossaClient', () => { } as FindingSummary); }); - it('should report finding summary without licenseing_issue_count', async () => { + it('should report finding summary without licensing_issue_count', async () => { server.use( rest.get(`${mockBaseUrl}/fossa/projects`, (req, res, ctx) => { expect(req.url.searchParams.toString()).toBe( diff --git a/plugins/fossa/src/api/FossaClient.ts b/plugins/fossa/src/api/FossaClient.ts index 7bea10194b..10f688393b 100644 --- a/plugins/fossa/src/api/FossaClient.ts +++ b/plugins/fossa/src/api/FossaClient.ts @@ -43,12 +43,8 @@ export class FossaClient implements FossaApi { } async getFindingSummary( - projectTitle?: string, + projectTitle: string, ): Promise { - if (!projectTitle) { - return undefined; - } - const project = await this.callApi( `projects?count=1&title=${projectTitle}${ this.organizationId ? `&organizationId=${this.organizationId}` : '' diff --git a/plugins/fossa/src/components/FossaCard/FossaCard.tsx b/plugins/fossa/src/components/FossaCard/FossaCard.tsx index b730be9343..d1ac06d365 100644 --- a/plugins/fossa/src/components/FossaCard/FossaCard.tsx +++ b/plugins/fossa/src/components/FossaCard/FossaCard.tsx @@ -77,7 +77,8 @@ export const FossaCard = ({ const projectTitle = useProjectName(entity); const { value, loading } = useAsync( - async () => fossaApi.getFindingSummary(projectTitle), + async () => + projectTitle ? fossaApi.getFindingSummary(projectTitle) : undefined, [fossaApi, projectTitle], ); diff --git a/plugins/fossa/src/components/useProjectName.ts b/plugins/fossa/src/components/useProjectName.ts index fde07ca5c6..88379ca3fa 100644 --- a/plugins/fossa/src/components/useProjectName.ts +++ b/plugins/fossa/src/components/useProjectName.ts @@ -18,6 +18,8 @@ import { Entity } from '@backstage/catalog-model'; export const FOSSA_PROJECT_NAME_ANNOTATION = 'fossa.io/project-name'; -export const useProjectName = (entity: Entity) => { - return entity?.metadata.annotations?.[FOSSA_PROJECT_NAME_ANNOTATION] ?? ''; +export const useProjectName = (entity: Entity): string | undefined => { + return ( + entity?.metadata.annotations?.[FOSSA_PROJECT_NAME_ANNOTATION] ?? undefined + ); };